我有一个名为users
的集合,在每个文档的用户中都有一个名为monthlies
的集合,我想获取它。
这是结构:
现在,我尝试使用以下方法获取它:
var getUsers = async function() {
var db = firebase.firestore()
var users = await firebase
.firestore()
.collection("users")
.get();
return users
}
var getMonthlyByUserId = async function () {
var users = await getUsers()
users.forEach(element => {
var monthlies = element.collection('monthlies').get()
console.log(monthlies.docs.map(doc => doc.data()))
})
}
但它什么也没打印。目标是迭代集合中所有文档的月度。
最佳答案
在您的代码中,element
是 QueryDocumentSnapshot类型对象。它没有名为 collection()
的方法,因此我预计您的代码会因日志中出现错误而崩溃。
如果您想引用在 QueryDocumentSnapshot 表示的文档下组织的子集合,您应该在其 ref 的基础上构建。属性:
users.forEach(snapshot => {
var monthlies = snapshot.ref.collection('monthlies').get()
console.log(monthlies.docs.map(doc => doc.data()))
})
或者,如果您只想查询所有名为“每月”的子集合中的所有文档,您可以使用单个 collection group query 来简化它.
关于javascript - 如何在 Firestore 上获取文档内的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60801708/