node.js - FIRESTORE - 如何获取文档中集合的值?

标签 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 时,我该如何循环遍历它的文档。

最佳答案

如果您不知道集合 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);
    });

关于node.js - FIRESTORE - 如何获取文档中集合的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46989769/

相关文章:

node.js - 缓存后如何处理 MongoDB 客户端连接错误 Mongo 关闭?

c# - 将具有特定字符串格式的日期时间添加到 SQLite 数据库

node.js - mongodb Dog.find() 在 Dog.create() 之前执行

javascript - 任何允许实时/云变量的 npm 包?

sql - 如何将新概念引入0..1实例的数据库表结构?

.NET:抽象数据源和数据上下文

java - 选择带有字符串的对象包含 Firebase DB 中的一些子字符串

javascript - 在 firestore firebase 中插入并合并特定字段

javascript - 我如何在 firestore 字段的数组字段中循环并检索最后一个对其具有真实值(value)的结果?

javascript - Meteor 1.8.1 SSL 双连接