为什么我不能将 Firebase Local Emulator Suite 用作自托管解决方案?
Why can't I use Firebase Local Emulator Suite as a self-hosted solution?
我目前使用 Firebase 作为创建大多数应用程序的解决方案。新客户需要一个在一天中的大部分时间都不会连接到 Internet 的解决方案。
因为我自己构建了使用 firebase 的 CMS 工具,所以我认为使用 firebase 模拟器是个好主意。但是在阅读 this 文档时,我看到一条注释说
Note: Do not attempt to use these emulators as "self-hosted" versions of Firebase services. They are built for accuracy, not performance or security, and are not appropriate to use in production.
我找不到讨论为什么这确实是个问题的文章,谁能看出我的解决方案为什么会有问题?
问题已在下面回答,这是我的更新
我决定转移并使用 MongoDB 作为我的本地数据存储解决方案
[此处为 Firebaser] Firebase 仿真器 不是 用作 self-hosted Firebase 的替代品。它们用于测试。在生产中使用它们是一个非常糟糕的主意,原因如下:
- 性能 - 实时数据库和 Firestore 模拟器没有持久存储层。他们将所有数据保存在内存中。他们根本没有有效的索引或任何复杂的数据库技术。因此,随着数据集的增长,它会变慢,如果模拟器崩溃,您可能会丢失所有数据。
- 安全性 - 这些模拟器故意不安全。例如,这两个数据库模拟器将接受任何 properly-shaped OAuth 令牌作为管理员凭据,并让该用户执行任何数据库操作。他们还接受未签名的 JWT 作为用户令牌,因此基本上任何拥有 JWT-creation 库的人都可以模仿任何其他用户。没有办法保护他们免受这种情况的影响,这是为了方便测试而设计的。
- 支持 - 如果您尝试在生产中使用它们并且 运行 遇到问题,我们将不会帮助您。事实上,我们会有点生气,因为我们要求您不要那样做:-)
我目前使用 Firebase 作为创建大多数应用程序的解决方案。新客户需要一个在一天中的大部分时间都不会连接到 Internet 的解决方案。
因为我自己构建了使用 firebase 的 CMS 工具,所以我认为使用 firebase 模拟器是个好主意。但是在阅读 this 文档时,我看到一条注释说
Note: Do not attempt to use these emulators as "self-hosted" versions of Firebase services. They are built for accuracy, not performance or security, and are not appropriate to use in production.
我找不到讨论为什么这确实是个问题的文章,谁能看出我的解决方案为什么会有问题?
问题已在下面回答,这是我的更新 我决定转移并使用 MongoDB 作为我的本地数据存储解决方案
[此处为 Firebaser] Firebase 仿真器 不是 用作 self-hosted Firebase 的替代品。它们用于测试。在生产中使用它们是一个非常糟糕的主意,原因如下:
- 性能 - 实时数据库和 Firestore 模拟器没有持久存储层。他们将所有数据保存在内存中。他们根本没有有效的索引或任何复杂的数据库技术。因此,随着数据集的增长,它会变慢,如果模拟器崩溃,您可能会丢失所有数据。
- 安全性 - 这些模拟器故意不安全。例如,这两个数据库模拟器将接受任何 properly-shaped OAuth 令牌作为管理员凭据,并让该用户执行任何数据库操作。他们还接受未签名的 JWT 作为用户令牌,因此基本上任何拥有 JWT-creation 库的人都可以模仿任何其他用户。没有办法保护他们免受这种情况的影响,这是为了方便测试而设计的。
- 支持 - 如果您尝试在生产中使用它们并且 运行 遇到问题,我们将不会帮助您。事实上,我们会有点生气,因为我们要求您不要那样做:-)