Javascript 如何向Google Firestore快照查询添加字符串?
我的Firestore如下所示:samples=>picture1=>{link1:“somelink.jpg”,link2:“somelink.jpg”等) 当我手动提供如下链接时,一切正常:Javascript 如何向Google Firestore快照查询添加字符串?,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,我的Firestore如下所示:samples=>picture1=>{link1:“somelink.jpg”,link2:“somelink.jpg”等) 当我手动提供如下链接时,一切正常: picRef.onSnapshot(function(doc){ if (doc && doc.exists){ const myPicData = doc.data(); somePicture.src = myPicData.link1}} 但是,如果我做了
picRef.onSnapshot(function(doc){
if (doc && doc.exists){
const myPicData = doc.data();
somePicture.src = myPicData.link1}}
但是,如果我做了以下事情,我就无法让它工作:
counter = 1;
somePicture.src = myPicData + ".link" + counter;
如果输入console.log,链接将变成[object%20Object].link1
我怎么修理它?我需要承诺吗?
谢谢。在ForEach中重复使用它
picRef.onSnapshot(function(user){
user.ForEach(function(data){
if (data && data.exists){
const myPicData = data.data();
counter = 1;
somePicture.src = myPicData + ".link" + counter;
})
})
似乎您正试图通过追加字符串来访问对象中的元素,这在javascript中是不可能的操作 比如说,
let doc={link1: "somelink.jpg", link2: "somelink.jpg"}
console.log(doc.link1) // outputs: somelink.jpg
console.log(doc + ".link" + 1) // outputs: [object Object].link1
也就是说,字符串被附加到对象上。使用字符串访问的正确方法是:
console.log(doc ["link" + 1]) // outputs: somelink.jpg
如果要指定默认值
console.log(doc["link" + 3] || "default") // outputs: default
希望我理解正确,这有帮助 不幸的是,这对我不起作用。它说“forEach不是一个函数”。是的,这很有帮助。非常感谢。