问题描述
我目前使用Firebase作为创建大多数应用程序的解决方案。新客户需要的解决方案在一天中的大部分时间都不会连接到Internet。
因为我拥有自己的使用Firebase的CMS工具,所以我认为使用Firebase仿真器是一个好主意。但是在阅读this文档时,我看到了一条纸条,上面写着
注意:请勿尝试将这些仿真器用作Firebase服务的“自托管”版本。它们是为准确性而不是性能或安全性而构建的,因此不适合在生产中使用。
我找不到有关为什么这确实是问题的文章,谁能看到我的解决方案为什么会出问题?
下面回答的问题,这是我的更新 我决定将MongoDB用作我的本地数据存储解决方案
解决方法
[此处为Firebaser] Firebase仿真器不旨在用作Firebase的自托管替代产品。它们用于测试。在生产中使用它们是一个非常糟糕的主意,原因如下:
- 性能-实时数据库和Firestore仿真器没有持久性存储层。它们将所有数据保留在内存中。他们根本没有有效的索引或任何复杂的数据库技术。因此,随着您的数据集的增长,它会变慢,并且如果模拟器崩溃,您可能会丢失所有数据。
- 安全性-这些模拟器是故意不安全的。例如,这两个数据库模拟器将接受任何字形正确的OAuth令牌作为管理凭据,并让该用户执行任何数据库操作。他们还接受未签名的JWT作为用户令牌,因此基本上任何拥有JWT创建库的人都可以模仿任何其他用户。没有办法确保它们不受此损害,这是设计使然,以便于轻松进行测试。
- 支持-如果您确实尝试在生产中使用它们并遇到问题,我们将无济于事。实际上,我们会有点生气,因为我们要求您不要这样做:-)