FIRESTORE - 如何在文档中获取集合的值?

时间:2017-10-28 12:32:32

标签: node.js database firebase google-cloud-firestore

在我的Firestore数据库中,我有一个 APP 集合。

它有一个文件 doc1

doc1 还有一个子集 coll1

请考虑以下示例。

let db = firebaseApp.firestore();

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

如何在响应中检查集合。或者,当我已经知道有一个子集合 coll1 时,我该如何遍历其文档。

1 个答案:

答案 0 :(得分:6)

如果您不知道集合ID,可以使用listCollectionIds方法获取所有内容:

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);
});

但是,听起来你已经知道它被称为col1,所以它更容易 - 只需参考它:

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);
    });