Google Firestore - Comment obtenir plusieurs documents par plusieurs identifiants en un seul aller-retour ?
P粉536532781
P粉536532781 2023-08-27 20:19:08
0
2
413
<p>Je me demandais s'il était possible d'obtenir plusieurs documents à l'aide d'une liste d'identifiants en un seul aller-retour (appel réseau) vers la base de données Firestore. </p>
P粉536532781
P粉536532781

répondre à tous(2)
P粉633075725

En fait, vous utiliseriez firestore.getAll comme ça

async getUsers({userIds}) {
    const refs = userIds.map(id => this.firestore.doc(`users/${id}`))
    const users = await this.firestore.getAll(...refs)
    console.log(users.map(doc => doc.data()))
}

Ou utilisez la syntaxe Promise

getUsers({userIds}) {
    const refs = userIds.map(id => this.firestore.doc(`users/${id}`))
    this.firestore.getAll(...refs).then(users => console.log(users.map(doc => doc.data())))
}
P粉860370921

Si vous êtes dans Node :

https://github.com/googleapis/nodejs-firestore/blob/master/dev/src/index.ts#L978

/**
* Retrieves multiple documents from Firestore.
*
* @param {...DocumentReference} documents - The document references
* to receive.
* @returns {Promise<Array.<DocumentSnapshot>>} A Promise that
* contains an array with the resulting document snapshots.
*
* @example
* let documentRef1 = firestore.doc('col/doc1');
* let documentRef2 = firestore.doc('col/doc2');
*
* firestore.getAll(documentRef1, documentRef2).then(docs => {
*   console.log(`First document: ${JSON.stringify(docs[0])}`);
*   console.log(`Second document: ${JSON.stringify(docs[1])}`);
* });
*/

Ceci est spécifiquement pour le SDK du serveur

Mise à jour : Cloud Firestore prend désormais en charge les requêtes IN !

myCollection.where(firestore.FieldPath.documentId(), 'in', ["123","456","789"])
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!