Firebase wriitng为“0”而不是实际的变量内容

时间:2017-06-15 15:01:55

标签: node.js firebase firebase-realtime-database

我正在一个名为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的值下,它将为零。

enter image description here

有什么建议吗?

1 个答案:

答案 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});