为什么我不能将Firebase Local Emulator Suite用作自托管解决方案?

问题描述

我目前使用Firebase作为创建大多数应用程序的解决方案。新客户需要的解决方案在一天中的大部分时间都不会连接到Internet。

因为我拥有自己的使用Firebase的CMS工具,所以我认为使用Firebase仿真器是一个好主意。但是在阅读this文档时,我看到了一条纸条,上面写着

注意:请勿尝试将这些仿真器用作Firebase服务的“自托管”版本。它们是为准确性而不是性能或安全性而构建的,因此不适合在生产中使用。

我找不到有关为什么这确实是问题的文章,谁能看到我的解决方案为什么会出问题?

下面回答的问题,这是我的更新 我决定将MongoDB用作我的本地数据存储解决方案

解决方法

[此处为Firebaser] Firebase仿真器旨在用作Firebase的自托管替代产品。它们用于测试。在生产中使用它们是一个非常糟糕的主意,原因如下:

  1. 性能-实时数据库和Firestore仿真器没有持久性存储层。它们将所有数据保留在内存中。他们根本没有有效的索引或任何复杂的数据库技术。因此,随着您的数据集的增长,它会变慢,并且如果模拟器崩溃,您可能会丢失所有数据。
  2. 安全性-这些模拟器是故意不安全的。例如,这两个数据库模拟器将接受任何字形正确的OAuth令牌作为管理凭据,并让该用户执行任何数据库操作。他们还接受未签名的JWT作为用户令牌,因此基本上任何拥有JWT创建库的人都可以模仿任何其他用户。没有办法确保它们不受此损害,这是设计使然,以便于轻松进行测试。
  3. 支持-如果您确实尝试在生产中使用它们并遇到问题,我们将无济于事。实际上,我们会有点生气,因为我们要求您不要这样做:-)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...