繁体   English   中英

如何在 Firebase Firestore 的每个文档的子集合中获取文档?

[英]How can I get documents inside a subcollection in every document in Firebase Firestore?

如何使用 JavaScript 获取 Firebase Firestore 中子集合“userPosts”中的所有文档? 您可以在下面的图片中看到我的数据库结构。

这是我尝试过的:

firebase.auth().onAuthStateChanged(function(user) {

    var postRef = database.collection('posts').doc().collection('userPosts');

    postRef.get().then(snapshot => {
        setupPosts(snapshot.docs)
    })

    const posts = document.querySelector('.posts');

    const setupPosts = (data) => {

        let html = '';
        data.forEach(doc => {
            const post = doc.data();

            console.log(post)

            const li = `
            <li>
                <div class="title">${post.title}</div>
                <div class="content">${post.content}</div>
            </li>
            `;
            html += li
        })

        posts.innerHTML = html;

    }
})

这段代码应该做的是获取子集合“userPosts”中的文档。 它应该进入“posts”集合中的每个文档,然后进入“userPosts”并获取该子集合中的每个文档。

第一个集合“帖子”

子集合“userPosts”

听起来您想要一个集合组查询 这将为您提供名为“userPosts”的所有子集合中的所有文档:

const query = database.collectionGroup("userPosts")
query.get().then(querySnapshot => { ... })

这条线没有意义:

var postRef = database.collection('posts').doc().collection('userPosts');

database.collection('posts').doc()posts集合中创建对新的、不存在的文档的引用。 因为你然后它的userPosts子集合,这当然不会存在/为空。


如果您想为您的user参数获取userPosts子集合,并根据用户的 UID 存储useruserPosts

var postRef = database.collection('posts').doc(user.uid).collection('userPosts');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM