当我计划如何在Firestore中构造数据以针对用例进行优化时,我不禁想知道如果将来我需要更新Firestore中数据的路径会发生什么情况?
我是否需要实施某种机制来通知我的移动应用程序的所有旧版本停止启动并需要升级?还是在应用启动时进行安全检查,以读取Firestore中的位置来确定客户端是否需要升级或可以继续使用当前版本?
似乎应该在客户端代码中对数据路径进行硬编码,这可能会带来风险,尤其是当Firestore中的数据结构复杂(子集合等)时产品的改进
在Firestore中,有没有办法更好地计划此类灾难?
答案 0 :(得分:1)
第一个目标应该是使任何数据库更改都向后兼容。可能比您现在想的要多得多。
但是,如果您真的想为不兼容的更改做准备,则应在数据库中包含版本号。在Cloud Firestore中,通常会将其放在已知文档名称(例如/Globals/VersionNumber
)的全局集合中。请注意,这是数据模型的版本号,不一定是应用程序的版本号。
现在,当应用启动时,它将首先读取该文档,并检查版本号是否与它的用途匹配。如果没有,请告诉用户进行升级。否则,照常继续。