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

Javascript 如何获取Firebase Firestore中每个文档的子集合中的文档?,javascript,html,firebase,google-cloud-firestore,Javascript,Html,Firebase,Google Cloud Firestore,如何使用JavaScript获取Firebase Firestore子集合“userPosts”中的所有文档?您可以在下面的图片中看到我的数据库结构 以下是我尝试过的: firebase.auth().onAuthStateChanged(function(user) { var postRef = database.collection('posts').doc().collection('userPosts'); postRef.get().then(snapshot =

如何使用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;

    }
})
firebase.auth().onAuthStateChanged(函数(用户){
var postRef=database.collection('posts').doc().collection('userPosts');
postRef.get().then(快照=>{
setupPosts(snapshot.docs)
})
const posts=document.querySelector('.posts');
const setupPosts=(数据)=>{
让html='';
data.forEach(doc=>{
const post=doc.data();
控制台日志(post)
常数李=`
  • ${post.title} ${post.content}
  • `; html+=li }) posts.innerHTML=html; } })
    这段代码应该做的是获取子集合“userPosts”中的文档。它应该进入集合“posts”中的每个文档,然后进入“userPosts”并获取该子集合中的每个文档


    这句话毫无意义:

    var postRef = database.collection('posts').doc().collection('userPosts');
    
    database.collection('posts').doc()
    创建对
    posts
    集合中新的、不存在的文档的引用。既然您将其
    userPosts
    subcollection保存下来,那么它当然不会存在/为空


    如果您想为
    user
    参数获取
    userPosts
    子集合,并根据用户的UID存储用户,那么应该是:

    var postRef = database.collection('posts').doc(user.uid).collection('userPosts');
    
    听起来你想要一份工作。这将为您提供名为“userPosts”的所有子集合中的所有文档:


    我不太明白。您能否说明您已经尝试了什么,或者为什么本文档中的代码不适合您?我现在已经添加了我尝试过的代码!但我不想得到一个UID为docID的特定文档,我想得到每个文档,然后进入子集合,如果你明白的话。几个小时以来,我一直在为嵌套的承诺和循环(不起作用)奋斗,这救了我一天!
    const query = database.collectionGroup("userPosts")
    query.get().then(querySnapshot => { ... })