javascript - 如何从每个唯一的 Firestore 文档中检索 1 个图片 URL 并使用该 picURL 设置 img.src?
问题描述
我想进入特定集合中的每个文档并检索保存的 picURL,然后将 src 设置为 li 中的 img 标签。我尝试了一个代码,它可以部分工作。它设置了img src,但它是同一个src。我想检索两个(或更多)不同的 picURL,并将它们设置为 img src 到两个(或更多)唯一的 img src。我希望这个问题有意义,很难解释。我将添加一些图片和代码片段以帮助理解。
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();
let li = `
<li class="post">
<div class="title">${post.title}</div>
<div class="content">${post.content}</div>
`;
var imgRef = db.collection('posts').doc(uid).collection('userPosts');
imgRef.get().then(function(snapshot) {
if (snapshot.docs.length > 0) {
let doc = snapshot.docs[0]
const data = doc.data();
const picURL = data.picURL
li += `<img class="img" src="${picURL}">`;
}
li += "</li><br></br>";
html += li
posts.innerHTML = html;
})
})
}
});
解决方案
试试这个解决方案。
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();
let li = `<li class="post">
<div class="title">${post.title}</div>
<div class="content">${post.content}</div>`;
li += (post.picURL ? `<img class="img" src="${post.picURL}">` : ``);
li += `</li><br></br>`;
html += li
})
posts.innerHTML = html;
}
推荐阅读
- amazon-cloudformation - 根据另一个参数分配 `AllowedValues`
- c++ - 在 Torch C++ API 中,如何快速写入张量的内部数据?
- mamp - Mac OS Catalina 中的 MAMP 5.5 安装失败
- postman - 如何在 Postman 中标记测试
- css - z-index 在动画容器的子元素上被忽略
- javascript - 如何从包含来自另一个应用程序的 DB 查询的 Node.js 函数获取返回值
- macos - 当我 `brew update` 发现 `https://github.com/Homebrew/homebrew-dupes/` 未找到
- mysql - 在 MySQL 中获取每月总计
- pagination - Yii2 Kartik Gridview Editable 不适用于分页
- mysql - 在 Account 中拥有唯一的组名,拥有子账户