在Firestore中获取文档集合

时间:2019-06-02 00:06:47

标签: javascript google-cloud-firestore

这是我的Firebase数据库

- conversations (collection)
-- xxx (document)
--- users (collection)
---- xxx (document)

我想列出所有对话及其用户

this.db.collection('conversations').get().then(querySnapshot => {
    querySnapshot.docs.forEach(doc => {
        console.log(doc.collection('users').get())
    });
});

我正在获取doc.collection不是函数

更新:这是获取ID并进行新查询后的内容。现在的问题是。这个表演吗?

    this.db.collection('conversations').get().then(conversationsQuerySnapshot => {
        conversationsQuerySnapshot.docs.forEach(doc => {
            this.db.collection('conversations').doc(doc.id).collection('users').get().then(usersQuerySnapshot => {
                usersQuerySnapshot.docs.forEach(doc => {
                    console.table(doc.data());
                });
            });
        });
    });

2 个答案:

答案 0 :(得分:1)

您正在寻找mycommand > outfile 2> stderr ,因为您需要通过doc.refdoc.ref.collection('users')DocumentSnapshot

请注意,通过简单地遵循类型,我发现最容易发现此类错误。您的DocumentReferencequerySnapshot,这意味着您的QuerySnapshotdoc。由于QueryDocumentSnapshot没有QueryDocumentSnapshot方法,因此更容易找出问题所在。

答案 1 :(得分:0)

您将其称为:db.collection('conversations')。doc({docID})。collection('users')

您当前的查询设置为浏览每个对话,然后在每个对话中获取每个用户。再加上第二部分(获取用户)没有要提取的基础文档,这就是为什么您看到错误的原因。

我建议观看此video