web-dev-qa-db-fra.com

Interroger la base de données Firestore pour l'ID du document

Je souhaite interroger une base de données Firestore pour l'identifiant du document. Actuellement, j'ai le code suivant:

db.collection('books').where('id', '==', 'fK3ddutEpD2qQqRMXNW5').get()

Je n'obtiens pas de résultat. Mais quand je recherche un champ différent, cela fonctionne:

db.collection('books').where('genre', '==', 'biography').get()

Comment s'appelle le nom de l'ID du document?

17
Lucas Hild

Essaye ça:

db.collection('books').doc('fK3ddutEpD2qQqRMXNW5').get()

(La première requête cherche un champ explicite défini par l'utilisateur appelé 'id', ce qui n'est probablement pas ce que vous voulez.)

19
Todd Kerpelman

Je suis un peu en retard, mais il existe en fait un moyen de le faire

db.collection('books').where(firebase.firestore.FieldPath.documentId(), '==', 'fK3ddutEpD2qQqRMXNW5').get()

Cela peut être utile lorsque vous traitez avec des règles de sécurité Firebase et que vous souhaitez uniquement rechercher les enregistrements auxquels vous êtes autorisé à accéder.

32
Denys Mikhalenko
firebase.firestore().collection("Your collection").doc(documentId).get().then( (docRef ) => {    
      console.log(doc.data())          
    }).catch( (error) => { })
3
Venkat