[英]Android Firebase a value is returning null from Realtime Database
我目前正在尝试制作一个用户需要登录的安卓应用程序。 对于数据库,我使用的是 Firebase 的实时数据库。 我做了注册和密码重置的事情,但我坚持让用户登录。 我有一个看起来像这样的数据库:
问题是密码返回 null 所以当我尝试比较它时,它只会破坏应用程序。
我当前的代码是:
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) {
}
});
}
});
我已经尝试了所有我可以从互联网上获得的东西,但似乎没有任何效果。 我的实时数据库规则设置为 true 以读取和写入。 我能得到的任何帮助我都非常感激。
问题是
String password1 = dataSnapshot.child("password").getValue(String.class);
线。 我将 dataSnapshot 更改为 userSnapshot,它起作用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.