簡體   English   中英

Firebase 檢查用戶名是否存在

[英]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) {

                        }
                    });
 }
 });

Firebase 數據庫

謝謝!!!

這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM