Angularjs 将新对象推入Firebase时如何设置自定义ID

Angularjs 将新对象推入Firebase时如何设置自定义ID,angularjs,firebase,firebase-realtime-database,Angularjs,Firebase,Firebase Realtime Database,我正在我的应用程序中使用Firebase和AngularJS。当用户使用Facebook身份验证登录应用程序时,我想创建一个新的用户对象(其中一些属性来自Facebook,一些属性与我的应用程序相关),并将其存储在Firebase中。很简单,我正在推送新的用户对象: ... var travelBidsFirebaseRef = new Firebase(url); var newUserRef = travelBidsFirebaseRef.child("user").push(user, c

我正在我的应用程序中使用Firebase和AngularJS。当用户使用Facebook身份验证登录应用程序时,我想创建一个新的用户对象(其中一些属性来自Facebook,一些属性与我的应用程序相关),并将其存储在Firebase中。很简单,我正在推送新的用户对象:

...
var travelBidsFirebaseRef = new Firebase(url);
var newUserRef = travelBidsFirebaseRef.child("user").push(user, callback);
...
push()
生成一个唯一的ID smth。比如:-J08SgyOeOU_fFb1CB3G。因此,访问此用户对象的唯一方法是使用以下ID:

angularFire(travelBidsFirebaseRef + "/user/-J08SgyOeOU_fFb1CB3G", $scope, 'user', {});
但是当我从Facebook收到身份验证数据时,我只有Facebook ID,我无法知道之前生成的Firebase ID(否则我将不得不维护所有用户的地图,我不想这样做)。
因此,这里有一个问题:如何使用自定义ID(如Facebook ID)将新用户保存到Firebase?

而不是使用
push()
,使用
set()
和Facebook ID:

travelBidsFirebaseRef.child("user").child(facebookId).set(user, callback);
如果您使用的是简单登录和多个身份验证提供商(例如,同时使用Facebook和Twitter),请确保按提供商划分用户,因为ID可能会冲突

travelBidsFirebaseRef.child(“user/facebook/”+facebook-id).set(user,callback)

更新

从FirebaseSimpleLogin 1.0开始,您现在可以使用
uid
,这在提供程序中是唯一的:

new FirebaseSimpleLogin(ref, function(err, user) {
   if( err ) throw err;
   travelBidsFirebaseRef.child('user/'+user.uid).set(user, callback);
});

您也可以尝试以下方法:

  employees.update({
    "1" : {
      "lastname" : "Doe",
      "firstname": "John"
    },
    "2" : {
      "lastname" : "Loca",
      "firstname": "Maria"
    }
  });
var empsRef=ref.child(“员工”);
empsRef.child('11111').set({
姓:“李”,
名字:“康”
});
empsRef.child('22222').set({
姓氏:“坚果”,
名字:“面团”

});执行以下操作:

  employees.update({
    "1" : {
      "lastname" : "Doe",
      "firstname": "John"
    },
    "2" : {
      "lastname" : "Loca",
      "firstname": "Maria"
    }
  });

这个答案与两年前发布的答案有什么不同