【问题标题】:access subcollection in firebase firestore v9访问 firebase firestore v9 中的子集合
【发布时间】:2021-12-31 01:14:06
【问题描述】:

我正在尝试访问子集合(消息)中的 firebase firestore 文档:

user > user.uid > messages > docRef.id > date: Date.now()
                                         text: userText
                  userEmail: user.email
                  userName: display.name

我使用了以下内容:

const snapRef2 = collection(db, "users/" + user.uid + "/messages")
onSnapshot(snapRef2, (snapshot) => {
    snapshot.forEach((doc) => {
        console.log(doc.data());
    })
})

但是这种方法只有在 user.uid 是一个字符串时才有效:const snapRef2 = collection(db, "users/randomstring/messages")

如何访问消息中的文档?

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    如果您想检索特定用户(由user.uid 标识)的消息,则答案中的代码有效。

    如果您想获取所有用户的消息,可以使用collection group query。这样的查询从具有特定名称的所有集合中读取,例如messages

    const snapRef2 = collectionGroup(db, "messages")
    ...
    

    您的其余代码可以保持不变。

    【讨论】:

    • 这在没有“/messages”的情况下有效。它应该是“消息”。但它有效
    【解决方案2】:
    const snapRef2 = collection(db, `users/${user.uid}/messages`) 
    

    确保使用反引号而不是引号

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 2023-02-10
      • 2020-11-11
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 2020-05-25
      相关资源
      最近更新 更多