【发布时间】:2019-08-06 06:42:10
【问题描述】:
我的问题是 Firestore 离线机制的工作原理(或者我不明白)。具体问题是,如果网络可用,数据首先从缓存中同步,而不是从在线同步。这很容易重现:
在您的 Firestore 数据库中,将其中一个变量的数据类型更改为错误的类型。例如,如果我们有文档“Person”,其中包含 String 类型的变量“name”,则将类型更改为数字并将 1 作为值。
您的应用程序现在将崩溃,因为 Firestore SDK 尝试将来自特定“Person”变量“name”int 的数据解析为字符串。
现在在 Firestore 数据库上修复此问题并将“名称”设置回字符串并设置值“测试名称”。
现在打开应用程序(网络可用)。
我在自己的应用程序中看到的问题是数据首先直接从缓存中获取,并且在缓存中,“Person”变量“name”仍然写为 int(firestore 上的数字)和应用程序即使我有活动的网络连接并且我直接在 Firestore 数据库上修复了数据类型,它也无法从在线获取更新的值。
在这种情况下防止崩溃的唯一解决方案是让用户清除应用程序存储/缓存并再次进入应用程序。对于其他用户来说,这也是可重现的问题吗?这是预期的行为吗?
如果需要更多解释请写在cmets中。
【问题讨论】:
标签: android firebase google-cloud-firestore