Home > Back-end >  Firebase firestore unique values in multiple fields
Firebase firestore unique values in multiple fields

Time:03-14

I'm creating an application for generating documents with unique id, my issue is that the id needs to be in a specific format ( 00000/A/B) so I can't use firestore document's id's.

The problem is also that I have that id's in different places,

#1 case

users/{userID}/id = //UNIQUE ID HERE

#2 case

users/{userID}/members <= members is an array of objects where every member need a unique id

I was thinking about the separate collection of id's where I can check which one is taken but maybe is there a better way to ensure id is unique across the whole app?

CodePudding user response:

What you're considering is pretty much the only way to guarantee uniqueness of a value across the database.

In a few more structured steps, it'd be:

  • Use that value as the document ID in an secondary collection. This collection purely exists to ensure uniqueness of the IDs.
  • Let the user claim it, typically by writing their UID into the document.
  • Use security rules to ensure a user can only write a document if it doesn't exist yet, and (if needed) only deleted when they own it.

The topic of unique values has been covered quite a few times before, although usually in the form of unique user names, so I recommend checking out:

  • Related