gpt4 book ai didi

java - Firebase 检查用户名是否存在

转载 作者:行者123 更新时间:2023-12-02 02:13:24 24 4
gpt4 key购买 nike

我目前正在开发一个 Android 应用程序,只需要用户在按开始后注册一次。下次用户打开应用程序时,按开始会将用户重定向到主游戏。

我可以使用 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 databasee

谢谢!!!

最佳答案

这个:

userNameRef.orderByChild("username").equalTo(currentUsername)

是一个查询,就像说where username= currentUsername

currentUsername 是登录用户,数据快照是users

所以在你的数据库中你有:

users
userid
username: currentUsername

当您使用 if(dataSnapshot.exists()){ 时,它会检查 users 快照并检查 where 条件,如果如果它们存在于数据库中,则将进入 if 子句。

如果where条件在数据库中不存在,则会进入else

关于java - Firebase 检查用户名是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49629501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com