我正在尝试使用WM1234
从Firebasedatabase
获取数据,但是由于某些原因,它总是跳过addListenerForSingleValueEvent
。
我不知道我的引用是否错误(我已经多次检查了该引用及其在列表中的位置)还是代码中的某些错误,或者我将该函数称为错误。
我有onDataChange
的列表,并且每个用户都由其UID保存,我想做的就是通过其UID搜索用户并获取其所有信息。
以下是我的代码示例
USERS
由于某种原因,它跳过了 //here i initialize the reference
private FirebaseDatabase refToUsers;
refToUsers = FirebaseDatabase.getInstance();
private User getUserDetailsFromFirebase(final String uid) {
refToUsers.getReference(Params.USERS).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren())
if(snapshot.child(uid).hasChild(currentUser.getUid())){
user = dataSnapshot.getValue(User.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getActivity(), "Please reload the app", Toast.LENGTH_SHORT).show();
Log.d(getTag(), "onCancelled: ."+ databaseError.getMessage());
}
});
return user;
}
,我不知道为什么会这样。
有人知道为什么吗?