执行添加子项的Firebase更新

时间:2014-05-22 03:39:58

标签: javascript firebase updating

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

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

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

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

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});

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

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

1 个答案:

答案 0 :(得分: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});

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