首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >推送到数据库和增量整数键

推送到数据库和增量整数键
EN

Stack Overflow用户
提问于 2017-09-16 19:35:55
回答 2查看 595关注 0票数 0

所以我使用Firebase实时数据库作为我的后端,我有一个问题,这可能有一个非常简单的解决方案。

我想将一些信息推送到数据库中,但就目前情况而言,它并不是推送一个新对象,而是简单地更新数据库。

我就是这样做的:

代码语言:javascript
运行
复制
   firebase.database().ref('users/' + uid + '/entries/'+$scope.todos.id+'/trackers/'+$scope.currTrack.id).update({
        note: individual.note,
        value: individual.value
    });

所以这是非常直截了当的,但这就是数据库中发生的事情:

代码语言:javascript
运行
复制
...
   -KuB-l8OX9zxGYuGw_EK //this is $scope.currTrack.id
      note: "the note",
      value: "the value"

因此,它不是创建一个新的递增整数键,而是将其放在id下面。

我想要做的是:

代码语言:javascript
运行
复制
...
   -KuB-l8OX9zxGYuGw_EK //this is $scope.currTrack.id
      0 //incrementing integer key
         note: "the note",
         value: "the value"
      1
         note: "the 2nd note",
         value: "the 2nd value"

我做错了什么?我用的是update,但set的工作原理也一样。

有什么想法吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-16 19:39:43

我在使用update,但set的工作原理也是一样的。

来自firebase.google.com文档

保存数据的方法 设置将数据写入或替换到定义的路径,如消息/用户/ 更新更新定义路径的一些键,而不替换所有数据

我认为您需要使用push API:

push添加到数据库中的数据列表中。每次将一个新节点推到列表上时,数据库都会生成一个唯一的密钥,比如messages/user//

票数 0
EN

Stack Overflow用户

发布于 2017-09-16 21:10:03

根据您的代码,每次更新()时,数组都会打开

“用户/”+ uid + '/entries/'+$scope.todos.id+'/trackers/'+$scope.currTrack.id

是用新的值重置的,也就是说,它首先清除火基上的数据,然后添加一个新条目。

如果你想要你说的话,那么你可以通过

  • 首先使用一次性()检索所有数组元素,并将其保存到数组中,例如list
  • 将项目推送到list
  • 然后执行更新()

但这样做没有任何意义。

另一种方式

维护一个计数变量。

代码语言:javascript
运行
复制
var count = 0;

...update({
    [count++]: {
      note: individual.note,
      value: individual.value
    }
  });

但是建议您使用post(),或者按照链接的说法构造您的防火墙数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46257754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档