我目前有一个JSON对象,其结构如下:
"users": {
"0":
{
"items_list": {
"0": [1],
"1": [2,3],
"2": [8, 9, 10],
"3": [11, 12, 13]
},
"name": "Dana"
}
},
在React-Native应用程序中按下按钮后,我想为items_list中的一个键存储的属性数组添加一个值。
具体示例:添加号码' 14'项目' 3',以便它将成为" 3":[11,12,13,14]。
有没有办法只将一个值添加到数组而不重写整个数据?看起来我可能必须得到与键关联的数组的值,为它添加一个新值,然后将整个事情推回去,但我想检查是否有更简单的方法去做这个。谢谢!
答案 0 :(得分:3)
要将项添加到数组,您需要知道该数组中已有多少项。
要知道Firebase集合中有多少项,您需要下载这些项目(或保留一个单独的计数器,但我现在要忽略它)。
这是Firebase documentation recommends against using an array to store collections of data。
的众多原因之一 recommended solution is to use a so-called "push id",这是您致电ref.push()
in the Firebase JavaScript SDK时生成的非常长的神秘值。
{
"messages": {
"-JhLeOlGIEjaIOFHR0xd": "Hello there!",
"-JhQ76OEK_848CkIFhAq": "Push IDs are pretty magical.",
"-JhQ7APk0UtyRTFO9-TS": "Look a white rabbit!"
}
}
要详细了解这些推送ID是什么,请阅读this blog post解释它们。