我目前正在尝试制作一个用户需要登录的android应用程序。对于数据库,我使用Firebase的实时数据库。我制作了注册和密码重置的东西,但我坚持让用户登录。我有一个数据库,看起来像这样:this
问题是密码返回空值,所以当我尝试比较它时,它只是破坏了应用程序。
我目前的代码是:
loginButton = findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String username2 = username.getText().toString();
final String password2 = password.getText().toString();
final DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference().child("User");
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
String username1 = userSnapshot.child("username").getValue(String.class);
String password1 = dataSnapshot.child("password").getValue(String.class);
if(username1 == null)
{
Toast.makeText(loginPage.this, "username1 NULL", Toast.LENGTH_SHORT).show();
return;
}
if(password1 == null)
{
Toast.makeText(loginPage.this, "password1 NULL", Toast.LENGTH_SHORT).show();
return;
}
if(username1.equals(username2) & password1.equals(password2)) {
Intent intent = new Intent(loginPage.this, oyunSec.class);
startActivity(intent);
} else {
Toast.makeText(loginPage.this, "Incorrect username or password", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
我已经试过所有我能从互联网上,但似乎没有任何效果。我的实时数据库规则设置为真的读和写。任何帮助我可以得到我真的很感激。
1条答案
按热度按时间jtoj6r0c1#
问题是
行。我将dataSnapshot更改为userSnapshot,它工作正常。