使用angularfire将uid添加到firebase数据库

Adding uid to firebase database using angularfire

我正在为我当前的项目使用 angularfire。我很难配置安全规则。

这是我的数据结构:

{
   users : {
      uid1 : { .. },
      uid2 : { .. }
   }
}

安全规则:

{ 
  "rules" : { 
     "users" : {
        "$uid" : {
           ".write": "auth !== null && auth.uid === $uid",
           ".read": "auth !== null && auth.uid === $uid"
         }
     }
  }
}

我正在使用匿名身份验证,"uid1" 和 "uid2" 与 auth.uid 无关。

我正在使用以下代码创建

var obj = $firebaseObject(ref.child('users').child(auth.uid));

它返回 $loaded 正常,但它没有在用户下创建 uid 节点。

调用 $firebaseObject 创建双向绑定:对数据库中的对象所做的任何更改都将自动同步到您的应用程序。

但是调用 $firebaseObject 不会 自动创建一个对象。

要创建用户,您可以使用 Firebase JavaScript SDK:

ref.child('users').child(auth.uid).set({ name: 'Vikas Singhal' })

或者您可以通过 AngularFire 创建它:

var obj = $firebaseObject(ref.child('users').child(auth.uid));
obj.name = 'Vikas Singhal';
obj.$save();

由于 AngularFire 是在 Firebase JavaScript SDK 之上构建的,混合使用这两个 API 效果很好。