繁体   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