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

时间:2015-12-07 13:06:07

标签: firebase angularfire firebase-security

我正在使用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节点。

1 个答案:

答案 0 :(得分:2)

调用$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可以正常工作。