安卓:Firebase ChildEventListener() 不工作

标签 android firebase firebase-realtime-database

我在我的应用程序中使用 Firebase,我尝试使用 onChildAdded() 回调,但我认为我做错了什么,因为我没有得到任何回应。

/**
 * Constructor
 */
private FirebaseManager(Context context) {
    Firebase.setAndroidContext(context);
    Firebase.getDefaultConfig().setPersistenceEnabled(true);
    mFirebaseRef = new Firebase(FIREBASE_URL);
}

public void checkUsers() {
    Firebase checkRef = mFirebaseRef.child("/data/users/");
    // Also tried 
    // Firebase checkRef = mFirebaseRef.child("data").child("users");
    checkRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Log.d(TAG,"New child added");
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }


    });
}

在我的 MainActivity 的 onCreate() 中,我对用户进行身份验证并调用 checkUsers()。之后我在数据库中手动添加一个新用户。但我在日志中什么也得不到。 这是 json 结构:

enter image description here

我做错了什么?

最佳答案

我明白了。存在并发问题。我在 MainActivityonCreate() 中调用了 checkUsers() 但它需要在 onAuthenticated() 中调用,因为在方法 checkUsers() 尝试设置监听器后,用户已通过身份验证。

我得到了一个关于访问数据库失败的日志:

W/SyncTree: Listen at / failed: FirebaseError: Permission denied

但没有看到它,因为我正在使用 logcat 搜索跟踪特定的 TAG。

关于安卓:Firebase ChildEventListener() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321946/

相关文章:

android - 从 XML 解析数据时出错

ios - 关闭应用程序时,Firebase IOS 推送通知不起作用

Java/Android : how to get full date string for user language and country?

android - 如何在 Nexus 7 上的 Android KitKat 的 Webview(Android Chrome) 中获取精确的边框和大小?

具有时间事件标准的Firebase Audience

android - 在 Android 中获取通知接收时间

Swift Firebase 按距帖子的距离排序

java - 推送完后如何获取 child 的数据?

java - 当我运行应用程序时,已排序的 ArrayList 未显示为已排序

android - 如何资助开源项目?