【发布时间】:2019-07-29 15:36:18
【问题描述】:
我将一些数据存储在我的 android 应用程序在启动时加载的 firestore 中。我使用以下方法在应用程序启动时加载此数据。
FirebaseFirestore.getInstance().collection("users").document(ApplicationEx.getUserId()).collection("items").addSnapshotListener((queryDocumentSnapshots, e) -> {
if (queryDocumentSnapshots != null) {
LOGGER.info("items fetched. from cache: " + queryDocumentSnapshots.getMetadata().isFromCache());
for (QueryDocumentSnapshot queryDocumentSnapshot : queryDocumentSnapshots) {
items.add(queryDocumentSnapshot.toObject(Item.class));
}
}
});
当我重新启动应用程序时,可以看到数据是从缓存中获取的,因为queryDocumentSnapshots.getMetadata().isFromCache() 每次都返回 true。但是,当我检查 firebase 控制台时,我可以看到有时文档读取计数会增加。
行为不一致。当我连续多次重新启动应用程序时,读取计数大部分时间都不会增加。但是,如果我有几分钟没有使用该应用程序,然后再启动该应用程序,则大部分时间读取计数都会增加。
存储的数据没有变化,所以这不可能是由于android同步了变化的数据。
这可能是什么原因?
【问题讨论】:
标签: android firebase firebase-realtime-database google-cloud-firestore