嗨,大家好我得到了一个空的,我不知道为什么......如果你可以帮助我,我会感到沮丧。
这是我在Firebase上的json。
usuarios{
krum{
dni: "43193622"
email: "pedroccc"
login: "krum"
nombre:"pedro"
pass: "1234" }
这是我的方法:
login_text = (EditText) findViewById(R.id.txtLogin);
onClickListener:
final String log_child = login_text.getText().toString();
final String pass_child = pass_text.getText().toString();
mDatabase = FirebaseDatabase.getInstance().getReference("usuarios").child(log_child);
mDatabase.child("pass").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String mpass = dataSnapshot.getValue(String.class);
pass = mpass;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
然后我将pass与pass_child与equals进行比较,我得到的传递是null ..任何想法?谢谢
PD。在Firebase中,所有设置均为真
答案 0 :(得分:1)
试试这个:
final String log_child = login_text.getText().toString();
final String pass_child = pass_text.getText().toString();
mDatabase = FirebaseDatabase.getInstance().getReference("usuarios").child(log_child);
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
String mpass = data.getValue().toString();
pass = mpass;
if(pass.equals(pass_child)){
//code here
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
添加for循环将使您能够从数据库获取传递。由于onDatachange
是异步的(意味着它不等到它完成检索数据,然后转到其后的其他方法,然后当它检索数据时它返回到方法onDatachange
)然后你有在方法onDatachange