web-dev-qa-db-fra.com

Requête de groupe de collections Firestore sur documentId

Dans mon scénario, un utilisateur peut "aimer" le profil d'un autre utilisateur. Par conséquent, j'ai une sous-collection appelée "likesBy" pour chaque utilisateur, où je crée un document pour un utilisateur spécifique, par exemple:

users (col) -> User A(doc) -> likesBy (col) -> User B (doc), User C (doc)

Donc, dans le scénario rare de suppression d'un utilisateur, je souhaite supprimer tous les problèmes de j'aime de cet utilisateur.

Je ne suis tout simplement pas sûr que cela soit même possible (une solution de contournement pourrait être de simplement enregistrer à nouveau l'ID utilisateur dans ledit document et de demander cela).

Ce que je recherche essentiellement, c'est quelque chose comme ceci:

db.collectionGroup('likedBy').where(firebase.firestore.FieldPath.documentId(), '==', "User A").get();

Le problème est que je ne peux pas créer d'index pour le documentId dans la console Firestore.

5
Thomas

Si vous ajoutez des ID utilisateur A et B au document lui-même:

users(col) -> User A(doc) -> likedBy(col) -> User B ({user_id: B, profile_liked_id: A})

Ensuite, vous pouvez interroger en utilisant:

db.collectionGroup('likedBy').where('user_id', '==', 'B');
0
petrusgomes