[英]Firebase Checking if username exists
我目前正在開發一個 android 應用程序,它只需要用戶在按下start后注冊一次。 下次用戶打開應用程序時,按開始會將用戶重定向到主游戲。
我能夠使用 SharedPreferences 做到這一點。 注冊后,我存儲一個名為 currentState 的值,並使用它來檢查用戶是否已經注冊。 這是代碼:
final int currentState = sharedPreferences.getInt(USERSTATE_NUM_KEY,0);
if(currentState == 0 ) {
Intent i = new Intent(MainActivity.this, Main_Screen.class);
startActivity(i);
} else{
// Redirect user to tutorial page, then the map page.
}
現在我被要求使用 Firebase 再次完成此操作,因為我已經存儲了用戶數據。
到目前為止,這是我的代碼,只是為了嘗試它是否會轉到onDataChange但它沒有,我現在不知道該怎么做。 到目前為止,這是我的代碼:
final String currentUsername = sharedPreferences.getString(USERNAME_NUM_KEY, "");
final DatabaseReference userNameRef = rootReference.child("users");
startGame.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userNameRef.orderByChild("username").equalTo(currentUsername)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
Log.v("TESTERR", "HELLO I EXIST LOL");
}
else{
Log.v("TESTERR", "NEW USER PAGE");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
謝謝!!!
這個:
userNameRef.orderByChild("username").equalTo(currentUsername)
是一個查詢,就像在說where username= currentUsername
currentUsername
是登錄用戶,數據快照是users
。
所以在你的數據庫中你有:
users
userid
username: currentUsername
當您使用if(dataSnapshot.exists()){
它檢查是users
的快照並檢查where
條件,如果它們存在於數據庫中,則它將進入 if 子句。
如果數據庫中不存在where
條件,那么它將進入else
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.