android 上的 Firebase 未检索数据

Firebase on android not retrieving data

我已经能够使用此处的指南成功地从我的 firebase 存储库上传和删除数据: https://www.firebase.com/docs/android/guide/saving-data.html

但是,如果我尝试使用此处的 Firebase 指南检索数据: https://www.firebase.com/docs/android/guide/retrieving-data.html

应用程序 activity 只是挂起 - 没有回调到 onDataChange 或 onCancel。我正在使用示例中的确切代码,该代码在指南中一直有效(在我的 Activity onCreate() 方法中):

Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");

ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        System.out.println(snapshot.getValue());
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {
        System.out.println("The read failed: " + firebaseError.getMessage());
        }
    });

示例中有数据 URL 所以应该可以。我在 运行 phone 运行 Android 4.0.3.

我做错了什么?

谢谢, 里兹

编辑:我在我的 Samsung Note 4 运行 Android 5.1.1 上试过,Firebase 工作正常。不适用于我的华为 运行 Android 4.0.3。与 Android 版本有关?

编辑 2:所以事实证明下面的答案毕竟是正确的。我在我的一个助手 类 中发现了一段旧代码,它在线程等待某事时暂停了线程。我将其重写为真正的异步并解决了问题。非常感谢 - 我已经接受了答案。

从 Firebase 同步数据是一个异步操作。试图等待该数据不是一个好主意。

您的 CallbackSignaler 正在阻止 onDataChange() 被调用。如果删除信号器,您会看到数据已加载,调用 onDataChange() 并记录值。

看我对这个问题的回答: