【问题标题】:Why can't I use Firebase Local Emulator Suite as a self-hosted solution?为什么我不能将 Firebase Local Emulator Suite 用作自托管解决方案?
【发布时间】:2021-01-16 16:05:59
【问题描述】:

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

因为我自己构建了使用 firebase 的 CMS 工具,所以我认为使用 firebase 模拟器是个好主意。但是在阅读this 文档时,我看到了一条说明

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

我找不到谈论为什么这确实是一个问题的文章,任何人都可以看到为什么我的解决方案会出现问题吗?

以下问题已回答,这是我的更新 我决定迁移并使用 MongoDB 作为我的本地数据存储解决方案

【问题讨论】:

  • 您引用的文字包含您需要知道的一切。您可能会遇到准确性、性能和安全性方面的问题(更不用说它根本不会扩大规模)。如果您对一款能够告诉您在非常重要的品质上可能出错的软件感到满意,那就试试吧。
  • 感谢道格的真实回答。我只是不明白让这些模拟器在本地简单地更新和读取 JSON 会导致准确性问题。隐私对我来说更有意义。我很欣赏你的观点。在我的场景中,使用 MonogoDB 或 Postgres 是否提供更好的“准确性”和“隐私”?我只是想更好地理解我的问题,希望这对你来说不是一个乏味的问题
  • 准确性是一个潜在问题,因为它与在云中运行的数据库代码不同。您实际上是在模拟器中运行不同的代码。我敢肯定模拟器团队已经努力让它保持相似,只是不一样。

标签: mongodb firebase firebase-realtime-database google-cloud-firestore self-hosting


【解决方案1】:

[此处为 Firebaser] Firebase 模拟器不是为用作 Firebase 的自托管替代品而构建的。他们是为了测试。在生产中使用它们是一个非常糟糕的主意,原因如下:

  1. 性能 - 实时数据库和 Firestore 模拟器没有持久存储层。他们将所有数据保存在内存中。他们根本没有有效的索引或任何复杂的数据库技术。因此,随着您的数据集增长,它会变慢,如果模拟器崩溃,您可能会丢失所有数据。
  2. 安全性 - 这些模拟器故意不安全。例如,这两个数据库模拟器将接受任何形状正确的 OAuth 令牌作为管理员凭据,并让该用户执行任何数据库操作。他们还接受未签名的 JWT 作为用户令牌,因此基本上任何拥有 JWT 创建库的人都可以模仿任何其他用户。没有办法保护它们免受这种情况的影响,这是为了方便测试而设计的。
  3. 支持 - 如果您尝试在生产环境中使用它们并遇到问题,我们将不会为您提供帮助。事实上我们会有点恼火,因为我们要求你不要那样做:-)

【讨论】:

  • 非常感谢山姆!我正在寻找它为什么会导致问题的分解,这非常有说服力。前两个原因显然是巨大的危险信号,而您的最后一点是朝着不同方向前进的良好动力。
  • 这似乎不符合开放开发的精神。提及这些缺陷并没有错,因此人们可以亲自修补它们。不理想或不推荐,但并非不可能或错误,
猜你喜欢
  • 1970-01-01
  • 2016-11-05
  • 2018-02-22
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 2021-10-22
相关资源
最近更新 更多