Firebase 推送数组 - Javascript

新手上路,请多包涵

我正在使用 Firebase 来存储锻炼应用程序的信息。

我的用户添加了一个锻炼名称,然后将其推送到数据库。我可以继续推送这些,但我的问题是它似乎并没有像数组一样推送一个对象。请参阅下面的屏幕截图…

来自 firebase 对象的控制台日志

在此处输入图像描述

正如您在控制台日志图片中看到的那样,锻炼属性是一个对象,而不是我期望的数组。

我用来推送它的代码:

     let newWorkout = {
      title: 'title',
      exercises: [{
        name: 'pulldownsnsn',
        sets: 4
      }]}

    let ref = firebase.database().ref("/userProfile/"+this.userId);

    ref.child("workouts").push(newWorkout);

原文由 okayilltry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 220
2 个回答

数组很方便,但它们是分布式数据库的噩梦,原因很简单:当元素被推送或删除时,索引元素标识不可靠。 Firebase 数据库改为使用键来识别元素:

 // javascript object
['hello', 'world']

// database object
{ -PKQdFz22Yu: 'hello', -VxzzHd1Umr: 'world' }

使用 push() 时会变得很棘手,因为它实际上并不像普通的推送,而是作为密钥生成,然后是对象修改。

用法示例

firebase.database().ref('/uri/to/list').push(
    newElement,
    err => console.log(err ? 'error while pushing' : 'successful push')
)

原文由 Nino Filiu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题