z00*_*00x 7 mongodb firebase flutter google-cloud-firestore
我有一个 Flutter 应用程序(仍在开发中),目前使用 Firebase 作为后端。更具体地说,我使用 Firebase 身份验证、存储、云功能、Firestore,将来我愿意使用远程配置、动态链接、云消息传递以及 Firebase 的更多功能。
我发现 Firestore 已经不足以满足我的目的:全文搜索、地理查询和一般高级查询。我知道我可以使用像Algolia这样的第三方服务,但它太贵了,而且我想要一些已经与我的数据库集成的东西。
我正在考虑开始使用 MongoDB 作为我的数据库(同时保留所有其他 Firebase 服务),但在此之前我需要了解最好的方法是什么。
如果在开始切换到 MongoDB 之前我需要考虑更多事情,请指出给我。
Firebase Hosting 是用于托管静态网站的 CDN。因此不可能托管像 MongoDB 服务器这样的应用程序。您无法在任何 Firebase 服务上托管 MongoDB。您必须将其部署到其他地方。有几种选择。您可以获取 VPS 并在其上安装 MongoDB 服务器。但是您必须管理自己的数据库,这可能很困难并且可能需要相当长的时间。另一种选择是使用云数据库,例如 MongoDB Atlas。这是一个更快、更安全的解决方案。然而,定价可能很高。所以你必须根据你的需求来决定。
一旦您拥有正在运行的 MongoDB 服务器,您需要为客户端应用程序编写一个 API 以进行安全通信。客户端应用程序永远不应该直接与数据库实例通信。在这种情况下,您可以使用 Firebase Cloud Functions 创建 api。
您可以将 Firebase Auth 服务与 Firebase Cloud Functions 结合使用。您应该查看 Firebase 可调用函数,它可以将身份验证上下文传递给函数体。在这里,您可以确保用户经过身份验证或根据您的授权需求执行一些访问控制逻辑。
总的来说,您将向您的架构添加另一层。这是可能的,但需要花时间来设置,并且您将失去一些 Firestore 的好处,例如脱机持久性。