FIRESTORE - 如何在文档中获取集合的值?
Posted
技术标签:
【中文标题】FIRESTORE - 如何在文档中获取集合的值?【英文标题】:FIRESTORE - How to fetch values of a collection inside a document? 【发布时间】:2018-04-09 22:17:10 【问题描述】:在我的 Firestore 数据库中,我有一个集合 APP。
它有一个文档doc1。
doc1还有一个子集合coll1。
考虑以下示例。
let db = firebaseApp.firestore();
db.collection('APP').doc('doc1').get()
.then(doc =>
let doc1Data = doc.data();
);
我怎样才能检查响应中的集合。或者当我已经知道有一个子集合 coll1 时,我该如何循环它的文档。
【问题讨论】:
【参考方案1】:如果您不知道集合 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);
);
【讨论】:
谢谢。听起来不错。但是快照上有没有任何方法可以让我们知道它在循环时是否有子集合(第二个代码片段)。只是为了让事情更容易。 没有实时系统监控的独立信息。 如果您使用的是express
,您需要先制定路线。 ;)以上是关于FIRESTORE - 如何在文档中获取集合的值?的主要内容,如果未能解决你的问题,请参考以下文章