【发布时间】:2016-09-20 19:58:53
【问题描述】:
如何确保用户名(由用户通过EditText 字段选择)是唯一的?我目前正在使用实时数据库:
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser user = auth.getCurrentUser();
mDatabase = FirebaseDatabase.getInstance();
User mUser = new User(user.getUid().toString(), username);
DatabaseReference allUsersRef = mDatabase.getReference("AllUsers");
allUsersRef.child(user.getUid().toString()).setValue(mUser);
(username = 用户选择的用户名;User = 仅包含 UID 和用户名的对象)
这会产生以下结构:
MyApp
|
---AllUsers
|
---THE_USERS_UID
|
|---username: "THE_USERS_USERNAME"
|
|---uid: "THE_USERS_UID"
那么,如果其他人打开我的应用并且必须选择用户名,我该如何“防止”他选择已经被其他人使用的用户名?
干杯!
【问题讨论】:
-
您可以使用 dataSnapshot.exists() 或 dataSnapshot.hasChild() 方法。
-
Calam 的答案有重要的部分,即您需要使用规则来保护它。另见this classic answer,可能还有很多these
标签: android firebase firebase-realtime-database