使用AngularJS和Firebase将数据推送到子节点

时间:2014-11-24 13:38:59

标签: angularjs firebase

我得到了这个:

"users" : {
    "simplelogin:129" : {
      "-JbX-CJuMDf1H8-yCETV" : {
        "gold" : {
          "receive" : {
            "amount" : 1,
            "date" : 1416835946409,
            "email" : "you@me.com"
          }
        }
      },

但我需要这样的事情:

"users" : {
    "simplelogin:130" : {
    "date" : 1416834728422,
    "email" : "yam@dam.com",
    "id" : "130",
    "gold" : {
       "receive" : {
         "-JbWva7Gh9Y3RarlF77h" : {
             "amount" : 1,
             "date" : 1416834737201,
             "email" : "you@do.com"
      },

如果我使用.update而不是.push,我会得到我需要的文件结构,但是它会为每个事务覆盖它,而不是每次都添加一个新的事务。

receive.orderByChild("email").equalTo( $scope.user.email ).once('child_added', function(snap) {
        snap.ref().push({gold: {receive: myGold}}).then(function() {
});

1 个答案:

答案 0 :(得分:0)

您的问题不是很清楚,但我认为您希望在树中更深入地推送新节点。

simplelogin:130
  date: ...
  email: "yam@dam.com"
  id: 130
  gold
    received
      -JbX-CJuMDf1H8-yCETV
        amount: 1
        date: ...
        email: "yam@dam.com"

要将数据存入黄金/收到,您可以:

snap.ref().child('gold/receive').push(myGold);

首先首先找到要添加内容的节点,然后再调用push添加一个新子项(带有新的唯一ID)。