Firestore模式版本控制以及与Android应用程序的向后兼容性以防止崩溃

时间:2018-08-31 05:35:48

标签: android firebase nosql google-cloud-firestore versioning

Firestore NOSQL是面向文档的数据库。现在,当我在Firebase SDK和Android应用程序中使用数据时,如何管理数据的版本控制?

例如假设我有一个JSON模式,该模式是通过我的Android应用程序的1.0.0版本启动的。稍后的1.0.1出现了,我必须为新文档添加一些额外的字段。由于我将结构更改为具有其他信息,因此它仅适用于新文档。

因此,使用这种逻辑,我可以看到我的Android应用程序必须能够处理所有版本的JSON树,如果将其用于我在Firebase控制台中使用Firestore创建的项目中。但这可能是非常痛苦的权利,我不断承担着向后兼容性的沉重负担吗?有没有办法在protobuf中提供某种版本,或者将android应用发送到Firestore服务器端,以便我们能够自动执行某些操作以防止在看到新字段时android应用崩溃?

另请参见该主题,即工程师发布的问题。当android应用在JSON树中发现新字段时,您可能会遇到这种问题 Add new field or change the structure on all Firestore documents

关于我们应该如何处理的任何建议?

在node.js架构中,我们使用default-> v1.1 / update或 default-> v1.0 / update,这样我们就可以管理路由。

但是对于与Firestore NOSQL对话的android + firebase SKD->,我如何管理json模式的版本控制。

1 个答案:

答案 0 :(得分:4)

我们提出了Firestore的下一个版本:

  • 更喜欢添加剂变化,向后兼容->保持结构 照原样,但是添加了新字段(旧字段可以忽略) 移动客户端)
  • 以防万一,而我们正在倒退 不兼容的更改:我们在Firestore中有一个名为“版本”的集合,用于在其中存储具有允许版本的客户端。然后,午餐时的移动应用程序获取当前平台的该版本,并将配置中的版本与Firestore中存储的版本进行比较-如果版本小于允许的最小值,则需要强制升级,否则,如果版本小于当前的版本,我们建议更新客户端,否则一切正常。 enter image description here