Firebase onDataChange is not executed



我想从Firebase实时数据库获取数据,但onDataChange((方法看起来好像没有执行。我设置了一些断点,但看起来它从未进入onDataChange((。这是数据库数据

{
"User" : {
"0988123344" : {
"Name" : "Eddy",
"Password" : "1234"
}
}
}

我还检查了Logcat,没有错误。

Button btnSignIn;
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference table_user = database.getReference("User");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_in);
edtPassword = (MaterialEditText)findViewById(R.id.edtPassword);
edtPhone = (MaterialEditText)findViewById(R.id.edtPhone);
btnSignIn = (Button)findViewById(R.id.sbtnSignIn);
}
@Override
protected void onStart() {
super.onStart();
btnSignIn.setOnClickListener(v -> table_user.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
User user = snapshot.child(edtPhone.getText().toString()).getValue(User.class);
if(user.getPassword().equals(edtPassword.getText().toString())){
Toast.makeText(SignIn.this,"Success!",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(SignIn.this,"fail!",Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
}));
}

这是用户

private String Name;
private String Password;
public User(String name, String password) {
Name = name;
Password = password;
}
public User() {
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
}

使用此代码

reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
User user = dataSnapshot.getValue(User.class);
Toast.makeText(MainActivity.this, "name: "+user.getName(), Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "password: "+user.getPassword(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});

并在onCreate方法中执行此任务

最新更新