Firebase提供了一个“0”而不是实际的variables内容

我正在更新一个名为消息线程的字段下的数据库中的值。 在那个线程下,我想存储所有用户的密钥,并且在那个密钥中我想要他们的图片。 从这里我已经构build了一个包含以下内容的循环:

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的值下,它将置零。

在这里输入图像描述

有什么build议么?

“0”是数组索引(因为您正在推送数组[groupPic]而不是一个普通的值,这很简单,只需使用groupPic

dynamic键名称有点棘手:最简单的方法是在将其设置在Firebase之前提前定义对象:

 var newVal = {}; newVal[groupUID] = groupPic; firebase.database().ref('path/to/ref').update(newVal); 

要么:

所以我今天学到了东西! (谢谢!)现在我明白你是如何在一开始就无意中使用数组。

你使用的速记符号很好,我以前从来没有见过。 所以这也可以起作用,相当于上面的内容(如果可能会更难以理解,因为它看起来像是一个数组):

 firebase.database().ref('path/to/ref').update({[groupUID]: groupPic});