相关疑难解决方法(0)

如何防止Firebase中出现重复的用户属性?

FirebaseSimpleLogin用来创建用户并处理身份验证.

当我尝试通过该$createUser()方法创建一个简单登录的新用户时,如果已经使用了电子邮件地址,firebase将不会创建用户.但是,$set()在创建它们之后,我还使用将创建的用户保存到我的firebase中,并将其user.uid用作密钥.当尝试写入数据库时​​,即使用户名不是唯一的,firebase也会保存记录,因为简单登录只需要电子邮件和密码.那么,当用户名不被用作用户对象的密钥时,如何验证用户名是否唯一?

我正在创建这样的新用户:

$scope.createUser = function() {
  $scope.auth.$createUser('trinker@gmail.com', 'password').then(function(user, err) {
    if (!err) {
      ref.child('users/' + user.uid).set({
        email: user.email,
        username: user.username
      });
      console.log("success!");
    }else{
      console.log(err.message);
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我的用户对象如下所示:

{
  "users" : {
    "simplelogin:28" : {
      "email" : "trinker@gmail.com",
      "username" : "jtrinker"
    },
    "simplelogin:30" : {
      "email" : "test@gmail.com",
      "username" : "jtrinker"
    }
  }
}

}
Run Code Online (Sandbox Code Playgroud)

我需要使用uid作为每个用户的密钥,但我仍然需要用户名是唯一的.

如果一个对象中的属性对于另一个对象内的属性不是唯一的,我怎么能阻止firebase保存记录?

angularjs firebase firebase-security angularfire firebase-realtime-database

29
推荐指数
1
解决办法
1万
查看次数