我有一个项目列表,用于存储其名称和其他数据。我所有其他工作清单都使用这些项目的ID。因此,为了让UI向用户显示项目名称而不是ID,app必须预先下载整个项目列表,并用项目名称替换ID。我想在本地缓存此列表,只有在更改后再次下载。知道我只想到列表的版本号并使用它跟踪更改。但也许有另一种方法可以检查节点的子节点是否在没有下载的情况下发生了变化?
答案 0 :(得分:1)
尝试调用addChildEventListener而不是addListenerForSingleValueEvent。
阅读本文以了解所有覆盖方法。 https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/ChildEventListener.html
答案 1 :(得分:0)
您可以致电addChildEventListener并在缓存中保存数据,您必须致电FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Disk Persistence
答案 2 :(得分:0)
我想我会在用于编辑列表的每个管理员功能中增加项目列表版本号,并且在用户的应用程序中我会检查此版本号以查看如果用户需要更新列表的本地副本。