在Firebase中为列表添加值?

时间:2016-05-12 04:19:34

标签: json database reactjs firebase react-native

我目前有一个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]。

有没有办法只将一个值添加到数组而不重写整个数据?看起来我可能必须得到与键关联的数组的值,为它添加一个新值,然后将整个事情推回去,但我想检查是否有更简单的方法去做这个。谢谢!

1 个答案:

答案 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解释它们。