【问题标题】:Add a value to a list in Firebase?向 Firebase 中的列表添加值?
【发布时间】:2016-05-12 04:19:33
【问题描述】:

我目前有一个结构如下的 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]。

有没有办法只向数组添加一个值而不重写整个内容?似乎我可能必须获取与键关联的数组的值,为其添加一个新值,然后将整个内容推回去,但我想检查是否有更简单的方法来执行此操作。谢谢!

【问题讨论】:

    标签: json database reactjs firebase react-native


    【解决方案1】:

    要将项目添加到数组中,您需要知道该数组中已有多少项目。

    要了解 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 解释它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      • 2013-10-28
      相关资源
      最近更新 更多