我想从Firebase读取数据。在调试模式下执行代码时,onDataChange
无法执行。其次,我不确定我是否正确调用了getValue
。我的数据库结构如下:
users
--userdID
-----email
-----mobile
-----name
此功能是否异步工作? 我不知道如何等待回复。
此处的代码:
public String getMobile (){
String userKey = user.getUid();
DatabaseReference dbUser = mDatabase.child("users").child(userKey);
dbUser.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
DataSnapshot ds = (DataSnapshot) dataSnapshot.getChildren();
mobileNumber = ds.child("mobile").getValue(String.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
if (mobileNumber == null) {
return null;
} else {
return mobileNumber;
}
}
我已经检查过我有一个要在数据库中检索的值,但是代码始终返回null
。