Regarding Contact ID when using expo-contacts package

Hi,
Anyone can suggest how consistent are the contact ID if a user say reinstall the app, reinstall the phone, delete and recreate same contact etc. How are these IDs generated?

My app needs to access contact information and save some settings per selected contact. I want to explore rather than keeping the config per phone number (treating phone number as PK) can i use the ContactID as PK and have it retained on my server. Privacy wise this would be a better way but i am concerned on various edge cases i mentioned above.

Thanks in advance,
This is the package i am using: https://docs.expo.io/versions/latest/sdk/contacts/#contactsgetcontactbyidasynccontactid-fields