我有一个带有列表的小型 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/