2017-10-28 3 views
3

In meiner Firestore-Datenbank habe ich eine Sammlung APP.FIRESTORE - Wie Werte einer Sammlung in einem Dokument abgerufen werden?

Es hat ein Dokument doc1.

doc1 hat weiterhin eine kinderkollektion coll1.

Betrachten Sie das folgende Beispiel.

let db = firebaseApp.firestore(); 

db.collection('APP').doc('doc1').get() 
    .then(doc => { 
    let doc1Data = doc.data(); 
    }); 

Wie kann ich möglicherweise für eine Sammlung in der Antwort überprüfen. Oder wenn ich bereits weiß, dass es eine Kindersammlung gibt coll1, wie kann ich durch seine Dokumente durchlaufen.

Antwort

4

Wenn Sie nicht die Sammlung IDs wissen können Sie die listCollectionIds Methode verwenden, um sie alle zu bekommen:

var firestore = require('firestore.v1beta1'); 

var client = firestore.v1beta1({ 
    // optional auth parameters. 
}); 

var formattedParent = client.anyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]"); 

client.listCollectionIds({parent: formattedParent}).then(function(responses){ 
    var collectionIds = responses[0]; 
    for (var i = 0; i < collectionIds.length; ++i) { 
     // doThingsWith(collectionIds[i]) 
    } 
}) 
.catch(function(err) { 
    console.error(err); 
}); 

Aber es klingt wie Sie bereits wissen, dass es col1 genannt wird, so ist es einfacher - nur darauf verweisen :

db.collection('APP').doc('doc1').collection('col1').get() 
    .then(snapshot => { 
     snapshot.forEach(doc => { 
      console.log(doc.id, '=>', doc.data()); 
     }); 
    }) 
    .catch(err => { 
     console.log('Error getting documents', err); 
    }); 
+0

Danke. Hört sich interessant an. Gibt es jedoch eine Methode für den Snapshot, die uns darüber informiert, ob während des Schleifens Child-Collections vorhanden sind (2. Code-Snippet)? Nur um die Dinge leichter zu machen. –

+0

Es gibt keine separaten Informationen zu dem, was das Echtzeitsystem überwacht. –

+0

Perfekter Mann! Ich danke dir sehr! :) –

Verwandte Themen