【发布时间】:2017-09-24 06:43:53
【问题描述】:
我知道这已经被问了很多,但我仍然可以让它工作。这是我的代码:
private int test;
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("Users");
test = 0;
userRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(userID))
test = 1;
else
test = 2;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Log.d(TAG, "Test = " + test);
以下是 Firebase 上的内容:
- 应用程序名-e545e
- 用户
- 用户ID
- 用户
我不知道为什么,但变量“test”总是返回值 0,这意味着 addListenerForSingleValueEvent 不起作用。感谢您在高级方面的帮助
【问题讨论】:
-
您使用 addListenerForSingleValueEvent 是否有原因?在监视子节点时,您不应该更愿意使用 addChildEventListener 吗?
-
我没有考虑过使用它,因为 Stack Overflow 上的很多线程都使用了 addListenerForSingleValueEvent。我会尝试看看它是否有效
-
嗨@leScepter,我遇到了关于 addValueEventListener() 回调的问题,在我的情况下,onDataChange() 根本没有触发,没有收到任何来自 firebase 的警告错误。
-
在这里帮助我 stackoverflow.com/questions/53396190/… 面临与 firebase 数据库连接相同的问题。
标签: android firebase firebase-realtime-database