我正在一个名为message threads的字段下更新数据库中的值。在该线程下,我想存储所有用户的密钥,并在该密钥中我想要他们的图片。由此我构建了一个包含以下内容的循环:
firebase.database().ref('users/' + userUID + '/messageThreads/' + newThreadID).update({
"date": currentDate.getTime(),
"lastMessage": "",
"read": false,
"isGroup": true
});
console.log(groupUID);
firebase.database().ref('users/' + userUID + '/messageThreads/' + newThreadID + "/" + "userUID").update({
[groupUID]: [groupPic]
});
由于某种原因,在数据库而不是groupUID的值下,它将为零。
有什么建议吗?
答案 0 :(得分:1)
" 0"是数组索引(因为你推入数组[groupPic]
而不是普通值。这很简单,只需使用groupPic
。
动态密钥名称有点棘手:最简单的方法是在firebase中设置对象之前提前定义对象:
var newVal = {};
newVal[groupUID] = groupPic;
firebase.database().ref('path/to/ref').update(newVal);
所以我今天学到了一些东西! (谢谢!)现在我明白你是如何在第一时间无意中使用阵列的。
你用来做钥匙的速记符号很好,我以前从未见过它。所以这也会起作用,它等同于上面的内容(如果读起来可能有点混乱,因为看起来就好像它将成为一个数组):
firebase.database().ref('path/to/ref').update({[groupUID]: groupPic});