如何確保用戶名(由用戶通過EditText
字段選擇)是唯一的?我目前使用的實時數據庫:Firebase:檢查用戶名是否已存在
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()M編制方法。 – uguboz
卡拉姆的回答有重要的部分,這就是你需要用規則來保證這一點。另請參閱[這個經典答案](http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate-user-properties-in-firebase)和可能很多[這些](http:///stackoverflow.com/search?q=%5Bfirebase%5D+unique+username) –