我有一个ValueEventListener,永远不会到达内部代码。我的应用程序正在验证,但我无法检索数据,我不确定我缺少什么。在下面的代码中,当我检查时,uid具有正确的值,并且数据路径(“Users / [uid]”)是正确的,但是从未到达值事件侦听器中的任何内部代码。我也尝试将听众放在根部,结果相同。
我使用菜单选项设置了Firebase,将身份验证和实时数据库添加到我的应用中;身份验证工作正常,所以我想知道是否还需要为实时数据库配置其他东西?我已阅读文档并浏览了许多示例,但我看不到任何我遗漏的内容。
uid = FirebaseAuth.getInstance().getCurrentUser().getUid().toString();
DatabaseReference userRef = ref.child("Users").child(uid).getRef();
ValueEventListener userListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if (user == null) {
SettingsLoad();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("User", "User not found" );
}
};
userRef.addListenerForSingleValueEvent(userListener);
答案 0 :(得分:0)
试试这个! 我刚刚添加了其他条件并记录或烘烤结果!!
uid = FirebaseAuth.getInstance().getCurrentUser().getUid().toString();
DatabaseReference userRef = ref.child("Users").child(uid).getRef();
ValueEventListener userListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if (user == null) {
SettingsLoad();
}
**else {
Log.d("tag","User Found!");
}**
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("User", "User not found" );
}
};
userRef.addListenerForSingleValueEvent(userListener);