【问题标题】:Doing Firebase Update that Adds a Child进行添加孩子的 Firebase 更新
【发布时间】:2014-05-22 03:39:58
【问题描述】:

我正在尝试在更新期间添加子节点。最好的例子:

name: 'mike'
      address: '123 main street'

name: 'paul'
      address: '1189 second avenue'

name: 'ethyl'
      address: '22 appletree lane'
      pet_count: 3

所以,“mike”去收容所养了一只狗,所以如果他没有宠物,我必须添加他的宠物,如果他有宠物,我必须增加计数。期望的结果是:

name: 'mike'
      address: '123 main street'
      pet_count: 1

name: 'paul'
      address: '1189 second avenue'

name: 'ethyl'
      address: '22 appletree lane'
      pet_count: 3

现在,如果我将另一只宠物添加到迈克快速增长的畜群中,我会得到...

name: 'mike'
      address: '123 main street'
      pet_count: 1

name: 'paul'
      address: '1189 second avenue'

name: 'ethyl'
      address: '22 appletree lane'
      pet_count: 3

我了解计数的递增是特定于应用程序的,我对此表示同意。如果不存在,我只是看不到如何添加 pet_count 节点。任何语言都可以。如果您想用代码回答,Javascript 似乎是中立的。

我尝试过类似的方法:

nameRef.child('mike').set({address: '123 main street',
                           pet_count: 1});

它会触发更改的事件,但我在 Forge 上看不到。我不认为数据是持久的。

我也试过了:

nameRef.update({name: 'mike', {address: '123 main street',
                           pet_count: 1});

最后两个应该是等价的吧?

任何提示我在这里缺少什么?

【问题讨论】:

    标签: javascript firebase updating


    【解决方案1】:

    在做了你尝试过的事情之后,你在 Firebase 中获得了什么宠物数量?我无法从您的问题中判断 pet_count 是显示为 1 还是在 firebase 中根本没有显示。看起来您每次都将 pet_count 设置为 1。不确定您的增量计数器是什么样子,但不要执行 pet_count: 1,而是将其设置为您的计数器的值 pet_count: Counter Value

    nameRef.child('mike').set({name: 'mike', {address: '123 main street',
                           pet_count: CounterValue});
    

    如果不存在,我不知道更新是否会创建一个新密钥。

    【讨论】:

    • 根本没有出现。这是常见的事情吗?即时修改“模式”?
    • 嘿,我刚刚尝试过,您尝试的两个建议都有效(更新和设置)。所以听起来你的设置正在发生其他事情,你能在 jsfiddle 中发布代码吗?也许您的 nameRef 指向不同的节点。
    • 你明白了! nameRef 指向的是根级节点,而不是子节点。我不知道这是怎么发生的,但我现在可以正常工作了。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2012-08-01
    • 2019-01-21
    • 1970-01-01
    • 2018-11-24
    • 2016-08-30
    • 2018-09-17
    • 1970-01-01
    相关资源
    最近更新 更多