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()
并记录值。
看我对这个问题的回答:
我已经能够使用此处的指南成功地从我的 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()
并记录值。
看我对这个问题的回答: