我正在构建一个桌面应用程序,并添加了对Firebase实时数据库的支持。因为我正在运行一个桌面应用程序,用户将运行我的应用程序的不同版本。
随着我的应用程序的发展,新的功能将被添加,可能还需要对数据库模式进行更新。但是我不能这样做,因为我需要保持所有客户端版本兼容。
例如,我在数据库project/${uid}/${projectName}
中保存了项目。想象一下,未来的项目不再与用户绑定,因为我实现了"协作"。想要改变这条路。我要怎么做才能保证我所有的客户都在运行?
您可以将该路径存储在实时数据库中,并根据需要在客户端获取URL。我不确定你所说的实施"合作"是什么意思。但如果你想让所有用户都使用相同版本的应用程序,那么你就必须在数据库中存储最新版本,并在客户端上自己验证版本。
项目不再与用户绑定
在我看来,如果你可以存储一个用户id列表谁是该项目的一部分,那么这将更容易,而不是构建你的应用程序作为projects/${uid}/projectname
。如果是/projects/${projectId}
之类的东西,那么存储授权用户列表会容易得多。
有远程配置
Firebase Remote Config是一项云服务,允许您更改应用程序的行为和外观,而无需用户下载应用程序更新。
如果你正在构建桌面应用程序,你可能不得不使用REST API。正如@Doug在评论中提到的,它可能不会同时同步所有客户端。