【发布时间】:2020-03-27 18:51:14
【问题描述】:
这个问题与this one 类似,但由于我没有足够的声誉,我无法回复任何答案。所以我创建了一个新问题。
我是 Flutter 和 Firebase 的新手。请多多包涵.. 我打算将我的应用从另一个数据库移到 Firestore。
所以我有一个包含图像信息和最新更新时间戳的 3K 文档集合。 问题是应用程序每次启动时(如果相隔 30 分钟),它将读取整个 3K 文档并显示在我的 Firebase 控制台中。 在我的测试中,一个普通用户每天会引起大约 8K-10K 的新读取!!即使我使用分页,它也会一遍又一遍地重复读取相同的数据,它仍然算作新读取..那太疯狂了.. 但是,如果我禁用了我的网络,该应用程序实际上能够在一天后从缓存中获取,而无需重新连接到 Firestore。
图像每天大约添加 4 张,因此每次加载都阅读整个 3K 文档是没有意义的。
我看到了一些使用本地数据库的解决方案。但是,如果我需要另一个本地数据库,那么使用 Firestore 有什么意义呢?我希望我不需要这样做..
所以我有一个想法,但我被困在某个地方.. 将最新更新存储在 SharedPreferences 中,并从缓存中存储的最新更新开始获取文档。但我被困在这里,我希望有人能帮助我:
我们如何在 Flutter 中禁用 Firestore 网络并仅从缓存中读取?我怎么知道它来自缓存?
如何更新缓存中的数据?因为如果我这样做:
Firestore.instance.collection('images').where('last_update', isGreaterThan: lastUpdateInCache).snapshots();
这只会显示最新更新后的快照。我应该将列表与旧的连接起来吗?但我不想连接列表,因为这意味着我需要复制数据,而且会占用大量内存。
Firestore 是否有一个我不知道的功能来解决这个问题?
谢谢你..我是一个业余爱好者,所以任何回复都将非常感激。
【问题讨论】:
标签: firebase flutter google-cloud-firestore offline