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});
- 如何使用Node和Angular在服务器和客户端之间传输数据?
- 将firebase数据节点导出为pdf报告
- Firebase倒数计时器跨多个客户端同步
- Nodejs Firebase和Angular4authentication
- Firebase的云端function:pipe理员与根查找
- Firebase:如何以编程方式为类似于`firebase.auth()。currentUser.getIdToken(false)`的特定用户生成一个jwt标记?
- 如何使用firebase云端function上的快速上传文件
- Firebase客户端不接收邮件
- 如何在我的Firebase无限滚动中按时间顺序sorting数据?