在 Firebase Firestore v9 中访问子集合

4

我正在尝试访问Firebase Firestore中子集合(messages)内的文档:

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

但是,这种方法仅适用于用户UID为字符串的情况,例如:const snapRef2 = collection(db,"users/randomstring/messages")

如何访问messages内部的文档?

2个回答

3
const snapRef2 = collection(db, `users/${user.uid}/messages`) 

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


2

如果您想获取所有用户的消息,可以使用集合组查询。这种查询从具有特定名称(如messages)的所有集合中读取:

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

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

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

这个可以不用加上“/messages”就能工作。应该是“messages”。但它仍然能正常工作。 - Mitchel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接