android - Firebase 无法获取最后一个插入值

标签 android firebase firebase-realtime-database

我有一个带有列表的小型 Firebase 数据库。如何获取列表中最后插入的值? 列表的元素以日期字符串作为键,例如:

 2016_05_29 --> data
 2016_05_30 --> data
 2016_05_31
 2016_06_01
 2016_06_02
 2016_06_03
 2016_06_10
 2016_06_11
 2016_06_12
 2016_06_13
 2016_06_14
 2016_06_15
 2016_06_16
 2016_06_17
 2016_06_18
 2016_06_19 //returned value
 2016_06_20
 2016_06_21
 2016_06_22
 2016_06_23 //expected value

我尝试获取此列表的最后一个值,因此 2016_06_23 但由于某种原因它返回此 2016_06_19 无论我使用什么键/订单系统:

Query dateMaxRef = ref.orderByKey().limitToLast(1); //this returns always 2016_06_19 instead of 2016_06_23 
dateMaxRef.addListenerForSingleValueEvent(new ValueEventListener() 

...

有什么想法吗?

最佳答案

我遇到了同样的问题,对我来说,原因是查询没有使用 Firebase 中的最新数据,而是依赖于内部缓存。在查询上使用 .keepSynced(true) 为我解决了这个问题。下面是示例代码 -

Query causeListPath = mFirebase.child(PATH_CAUSE_LIST).child(SELECTED_CITY)
        .child(SELECTED_COURT_CODE).limitToLast(1);

// If user wants un-cached data, force sync
if (!useCache) causeListPath.keepSynced(true);

causeListPath.addChildEventListener(new ChildEventListener() {
...
});

关于android - Firebase 无法获取最后一个插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38168054/

相关文章:

Android获取Facebook共同好友如何填写USER ID?

android - 如何使用 Spring Boot Server 无限期地保持 Android 应用程序登录?

javascript - 无法使用 admin sdk 获取 firestore 文档

node.js - 云函数: No document found

ios - Swift:使用 firebase 时 TableView 的索引超出范围错误

android - Firebase getreference() vrs getreference(值)

android - 如何在 Android 的 ndk-gdb 中调用 malloc()

android - 关于 Android WebView SSL 信任的支持

ios - swift Firebase 删除观察者

java - 如何从 Firebase 数据库检索图像并将其显示在 RecyclerView 中?