firebase - 如何在桌面应用程序中保持 Firebase 实时数据库架构兼容?
问题描述
我正在构建一个桌面应用程序并添加了对 Firebase 实时数据库的支持。因为我正在运行一个桌面应用程序,所以用户将运行我的应用程序的不同版本。
随着我的应用程序的发展,将添加新功能,并且可能还需要更新数据库架构。但我不能这样做,因为我需要保持所有客户端版本兼容。
例如,我有项目保存在数据库中project/${uid}/${projectName}
。想象一下,未来项目不再与用户绑定,因为我实现了“协作”并希望改变这条路径。我将如何做到这一点以保持我所有的客户正常运行?
解决方案
您可以将该路径存储在实时数据库中,并根据需要在客户端上获取 URL。我不确定实施“协作”是什么意思,但如果您希望所有用户都使用相同版本的应用程序,那么您必须将最新版本存储在数据库中并在客户端自己验证版本。
项目不再与用户绑定
在我看来,如果您可以存储属于该项目一部分的用户 UID 列表,那么这将更容易,而不是将您的应用程序构建为projects/${uid}/projectname
. 如果是这样,/projects/${projectId}
那么存储授权用户列表会容易得多。
有 远程配置。
Firebase 远程配置是一项云服务,可让您更改应用的行为和外观,而无需用户下载应用更新。
如果您正在构建桌面应用程序,您可能必须使用REST API 。同样正如评论中提到的@Doug,它可能不会同时同步所有客户端。
推荐阅读
- javascript - 单击按钮时以模式显示不同的内容 - React
- oracle - How to correctly pass a string argument to XPATH in Oracle?
- php - 为什么 sendMailConfirmation 方法不向用户发送签名 URL?
- single-page-application - 为静态单页应用程序中的路由生成内容安全策略的最简单方法是什么?
- excel - VBA 验证公式
- api - 如何使用 Twitter API 搜索和过滤推文?
- prometheus - Prometheus:向客户端发送数据?
- java - 来自 ResponseEntityExceptionHandler 的问题覆盖 handleMethodArgumentNotValid
- java - 数组生成 - 常规还是 2D?
- c# - 读取 RadioButton 值:WinAppDriver、C#、Inspect.exe