使用angularJS更新Firebase中的特定记录

时间:2016-01-09 12:47:43

标签: javascript angularjs firebase angularfire

如何访问phoneNo = 222的整个对象并更新其lang和lat

  var db = new Firebase("myFB/names");
 names {
    -K7VQBTELD4FQE1HL1U{
       phoneNo: 111,
       long: 126,
       lat: 458
     }

    -K7WJGBTELD4FQ1EHL1U{
       phoneNo: 222,
       long: 547,
       lat: 951
  }
}

1 个答案:

答案 0 :(得分:4)

Firebase查询需要按功能排序,然后您可以限制为equalTo()等条件。

var ref = new Firebase("<my-firebase-app>/names");
var query = ref.orderyByChild('phoneNo').equalTo('222');

然后,您可以创建一个将检索该值的侦听器。该值将以DataSnapshot的形式返回,其中包含关联的引用。使用该引用,您可以处理所需的任何更新。

query.on('value', function(snap) {
  var obj = snap.val();
  var snapRef = snap.ref();
  snapRef.update({
    lat: 32.332325,
    long: 124.2352352
  });
});

但是,您无需reed对象进行更新。在您的情况下,您使用push-id作为/names的密钥。也许更简单的查找是phoneNo密钥。然后你可以做以下事情:

var ref = new Firebase('https://my-firebase-app/names/222');
ref.update({
  lat: 32.332325,
  long: 124.2352352
});