【问题标题】:Pushing Data To A Child Node with AngularJS and Firebase使用 AngularJS 和 Firebase 将数据推送到子节点
【发布时间】:2015-01-22 05:53:33
【问题描述】:

我明白了:

"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() {
});

【问题讨论】:

  • 调用 push 会为您生成一个具有唯一 ID 的新节点。如果每次都会这样做,所以当你推送一个新的传输时,你不能覆盖以前的传输。请包含最少的代码来显示您的问题并清楚地显示您得到的结果和您期望的结果(最好两者都是真实的 JSON 结构,而不是它们的文本描述)。设置一个显示问题的 jsfiddle/jsbin/plunkr 也可能是值得的。
  • 添加了图片,希望能让困境更加清晰 :) 我需要在“gold:receive”下的一个新节点,而不是在它捕捉到的位置下的一个新节点。
  • 请不要图片,只有代码和数据(当有人试图重现您的问题时,它们是可搜索和复制/粘贴的)。现在我将不得不在我的答案中输入它,我本可以花时间帮助别人。

标签: angularjs firebase


【解决方案1】:

您的问题不是很清楚,但我假设您想将新节点推入树的更深处。

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)。

【讨论】:

  • 这正是我想做的,抱歉我的解释太糟糕了!我找不到任何关于如何将数据添加到子节点的文档!我试图以不同的方式添加它,但那是正确的。谢谢!!!
  • 请花点时间更新您的问题并包含数据结构而不是那些屏幕截图。
  • 尽我所能,希望现在更具描述性!
  • 是的。更好的。请注意,@stukennedy 在他对您之前问题的回答中的评论仍然有效:stackoverflow.com/a/27096041/209103。让每个人“盲目”访问其他人的数据并不是很安全,您可能需要考虑一种不同的方法,或者使用服务器端模式(如 Stu 建议的那样)或编写更复杂的安全规则(如此处所述:@987654322 @)
猜你喜欢
  • 2019-01-27
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多