离线访问 Firestore 子集合

Offline access to Firestore sub-collections

正在寻找有关我在 Firebase 中的数据结构的建议。

我的应用:植物护理提醒

我认为基本的数据结构可以是这样的。

所以用户可以有很多植物,每个植物可以有很多任务。

我相信我会在 Firestore 中有一个顶级用户集合,然后每个 userData 文档都会有一个植物的子集合。随后每个工厂都会有一个子任务集合。

该应用程序将在一个屏幕上显示所有用户植物,然后用户可以单击植物并查看任务。


我希望用户能够在离线一段时间后仍然能够访问所有内容。

做一个大查询来检索应用加载的所有数据是否明智?这样做是为了确保他们是否离线 Firestore 拥有所有缓存的子集合。

或者是否更好地在加载时进行查询以获取用户的植物子集,以便他们可以看到他们拥有的植物,然后当他们单击植物时执行另一个查询以获取该植物子集任务数?

如果用户可以看到植物,则离线并单击该植物。是否可以在没有网络连接的情况下查询植物任务子集?


抱歉解释不当,当 Firestore 进行浅层查询时,我试图用 Firestore 和嵌套子集合来解决离线数据持久化问题。

Firestore 的磁盘持久化起到缓存的作用,维护应用程序最近加载的数据,以及所有尚未同步到服务器的本地写入操作。

I would like the ability for the user to go offline for a period and still be able to access everything.

这本质上与 Firestore 磁盘缓存的工作方式不太匹配。为了让它在您的用例中工作,您需要确保读取所有数据,这将增加读取操作和带宽消耗,并且还会使本地缓存运行得比需要的慢。

如果您需要一个完全本地化的数据库,而不是最近读取和本地修改过的数据的缓存,Firestore 可能不是这种用例的最佳选择。考虑改用您自己的本地数据库。