0
我有一个ValueEventListener,并且永远不会到达内部代码。我的应用正在进行身份验证,但我无法检索数据,我不确定我错过了什么。在下面的代码中,当我检查时,uid具有正确的值,并且数据路径(“Users/[uid]”)是正确的,但值事件侦听器中的内部代码永远都不会到达。我也尝试将一个侦听器放在根上,结果相同。ValueEventListener永远不会被输入
我已经使用菜单选项设置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);
请勿在'child()'之后调用'.getRef()'。这是不必要的,并会在某个时候导致问题(尽管这不是你目前问题的原因)。 Just:'DatabaseReference userRef = ref.child(“Users”)。child(uid);'。 –