如何通过电子邮件ID获取用户并在angularfire中更新它?

时间:2016-09-30 13:20:09

标签: angularjs firebase firebase-realtime-database angularfire

Angularfire对我来说是新的。

我有以下用户' firebase中的数据库

{
  "users" : {
    "OXdf2BB0ZSO9eGAWGaeeHMAIz7k2" : {
      "displayName" : "nirmal",
      "email" : "nirmal@gmail.com",
      "username" : "nirmal"
    },
    "kuuVEQHTrZgFyv9WZmfYhNJnUSf1" : {
      "displayName" : "Mehul",
      "email" : "mehul@gmail.com",
      "username" : "malimehul"
    }
  }
}

我想通过电子邮件ID获取用户并更新它或在用户中添加新属性。

像:

var userQuery = firebase.database().ref().child("users").orderByChild('email').equalTo('nirmal@gmail.com');

userQuery.on("child_added", function (snap) {
   console.log('snap', snap.val());
   //want to updating the user is received?, want to add phone property in received user
})

所以,想在用户中添加手机属性(nirmal@gmail.com):  更新后用户(nirmal@gmail.com)用户对象应如下所示

"OXdf2BB0ZSO9eGAWGaeeHMAIz7k2" : {
  "displayName" : "nirmal",
  "email" : "nirmal@gmail.com",
  "username" : "nirmal",
  "phone":"xxxxxxxxxx"
}

有可能在angularfire?

那么,如何通过电子邮件ID获取用户并在angularfire中更新它?

1 个答案:

答案 0 :(得分:1)

更新用户:

var usersRef = firebase.database().ref().child("users")l
var userQuery = usersRef.orderByChild('email').equalTo('nirmal@gmail.com');

userQuery.on("child_added", function (snapshot) {
   snapshot.ref.update({ phone: "+15554084242" })
})

因此,在新行中,我们使用ref获取快照的参考,然后使用update()添加/更新单个属性。