Javascript 从Firebase Firestore获取图像并将其添加到;李",;

Javascript 从Firebase Firestore获取图像并将其添加到;李",;,javascript,html,firebase,google-cloud-firestore,google-cloud-storage,Javascript,Html,Firebase,Google Cloud Firestore,Google Cloud Storage,我尝试从Firebase存储中检索图像,然后将它们添加到一个“li”标记中,这是一篇文章。但是当运行下面的代码时,我得到src=undefined。“li”标记中的div有效。有人能帮我吗 为什么出现错误:无法读取未定义的属性“get” HTML: JavaScript: var postDocRef = db.collection('posts').doc(uid).collection('userPosts') postDocRef.get().then(snapshot =>

我尝试从Firebase存储中检索图像,然后将它们添加到一个“li”标记中,这是一篇文章。但是当运行下面的代码时,我得到src=undefined。“li”标记中的div有效。有人能帮我吗

为什么出现错误:无法读取未定义的属性“get”

HTML:


JavaScript:

var postDocRef = db.collection('posts').doc(uid).collection('userPosts')

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

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

const setupPosts = (data) => {

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

        var docRefIDpost = docRef.id

        const post = doc.data();
        const li = `
        <li>
            <div class="title">${post.title}</div>
            <div class="content">${post.content}</div>
            <img class="img">
        </li>
        `;

        var imgRef = db.collection("posts").doc(uid).collection('userPosts').doc(docRefIDpost);

        imgRef.get().then(function(snapshot) {
            var picURL = snapshot.get("picURL")
            
                    var imgpost = document.querySelector(".img");
        
                    imgpost.src = picURL
        
            })

        


        html += li
    })

    posts.innerHTML = html;

}
});
var postDocRef=db.collection('posts').doc(uid).collection('userPosts')) postDocRef.get()。然后(快照=>{ setupPosts(snapshot.docs) }) const posts=document.querySelector('.posts'); const setupPosts=(数据)=>{ 让html=''; data.forEach(doc=>{ var docRefIDpost=docRef.id const post=doc.data(); 常数李=`
  • ${post.title} ${post.content}
    每个
    userPosts
    文档的结构如何?您是否检查了
    imgRef
    snapshot
    是否为空? 我相信实际的问题可能是您在访问
    imageURL
    时错过了对
    data()
    的调用:

    var picURL = snapshot.data().picURL
    

    仍然没有更改。但现在,我在控制台中遇到一个错误:无法读取未定义的属性“get”。快照不是空的,因为我在控制台中记录了快照。我猜是.get()函数造成了问题。是的,get()函数成了问题。从
    data()返回的对象
    是一个js对象–您可以直接访问
    picURL
    和其他属性。我已经调整了上面的答案。
    var picURL = snapshot.data().picURL