【问题标题】:firebaseObject $save() replaces the content of referencefirebaseObject $save() 替换引用的内容
【发布时间】:2015-05-06 05:07:17
【问题描述】:

我无法使 $save() 工作(我正在使用 firebaseObject)

 var user = new Firebase("URL");
 user.name = 'mark';
 user.$save();

在此之后,我的用户的所有记录都被简单地替换为单个

name: mark

【问题讨论】:

  • 这段代码不会运行,因为 Firebase 是 Firebase JavaScript SDK 的一个对象,而 $save 只在 AngularFire 中定义。如果您想更新对象的 一些 属性,只需执行 new Firebase("url").update({ name: 'mark' }); 在此处查看 update 的文档:firebase.com/docs/web/api/firebase/update.html
  • 这个例子可能需要一些工作。见creating an mcve。您在这里使用了 Firebase 引用作为角度 $firebaseObject 服务,没有给出上下文,也没有真正的理解。此外, $save() 确实替换了内容,是的。这是预期的行为。
  • 除了上面的 cmets,如果您希望继续使用 AngularFire,请参阅this answer for "saving new property overwrites firebase object"

标签: firebase angularfire


【解决方案1】:

您的示例中尚未加载数据。您必须通过连接到 firebase .on 来等待,或者(看起来您正在使用 angularfire)您可以根据参考研究使用 $loaded。

var user = $firebaseObject(new Firebase("URL"));
user.$loaded().then(function(){
    user.name = 'mark';
    user.$save();
});

【讨论】:

    【解决方案2】:

    实际上,我错过了上面代码示例中的 $firebaseObject。 问题是我的 firebaseObject 尚未加载。 $loaded() 修复了它。这是最终的工作代码:

    var user = $firebaseObject(new Firebase("URL"));
    user.$loaded().then(function(){
       user.name = 'mark';
       user.$save();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2019-10-31
      • 2016-08-10
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      相关资源
      最近更新 更多