相关疑难解决方法(0)

Firebase android:使用户名唯一

Parse将在今年年底关闭,所以我决定开始使用Firebase.我需要实现一个包含3个字段的注册过程:电子邮件,用户名,密码(电子邮件和用户名对我的应用必须是唯一的).

由于Firebase没有提供像Parse那样管理用户名的简便方法,因此我决定只使用电子邮件/密码注册并保存一些其他数据,如用户名.这是我的用户数据结构:

app : {
    users: {
       "some-user-uid": {
            email: "test@test.com"
            username: "myname"
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我想要做的是使用户名唯一,并在创建帐户之前检查它.这些是我的规则:

{
    "rules": {
        ".read": true,
        ".write": true,
        "users": {
            "$uid": {
                ".write": "auth !== null && auth.uid === $uid",
                ".read": "auth !== null && auth.provider === 'password'",
                "username": {".validate": "!root.child('users').child(newData.child('username').val()).exists()"}
            }
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助

android firebase firebase-security firebase-authentication

31
推荐指数
2
解决办法
2万
查看次数

如何防止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万
查看次数

Firebase 中的独特属性

我有一个包含类别的 IOS 应用程序。我在 Firebase 上的存储如下所示:

-root
   -Categories
      -key
        - color:
        - name:
        - sum:
   -Expenses
      -key
        -amount: 
        -category: 
        -date: 
        -description: 
        -initiator: 
        -name: 
Run Code Online (Sandbox Code Playgroud)

用户不得两次添加类别。我想让类别名称独一无二。在 Firebase 中可以做到吗?提前致谢。

unique-constraint ios firebase firebase-realtime-database

2
推荐指数
1
解决办法
1592
查看次数