javascript - 如何在 Firestore 上获取文档内的集合?

标签 javascript firebase google-cloud-firestore

我有一个名为users的集合,在每个文档的用户中都有一个名为monthlies的集合,我想获取它。 这是结构:

enter image description here

现在,我尝试使用以下方法获取它:

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

但它什么也没打印。目标是迭代集合中所有文档的月度。

最佳答案

在您的代码中,elementQueryDocumentSnapshot类型对象。它没有名为 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/

相关文章:

android - 仅在重新启动应用程序后收到 Firebase 通知

javascript - 无法将 “custom blob” 保存到 Firestore - ADMIN SDK

google-cloud-firestore - 文档父名称缺少正斜杠

javascript - Blob 的 DataUri 与 Base64 字符串 DataUri

javascript - 在 Firefox 插件中注册控制台服务监听器

javascript - 如何将点击事件绑定(bind)到表头内的 Div

ios - 如何在 ViewDidLoad 之前完成功能

javascript - Slick.js 错误的箭头行为,如何解决?

javascript - 我如何在 firestore 中按日期和位置可用性进行过滤?

firebase - 删除云 Firestore 文档中的特定字段时出错