【问题标题】:Building a Node.js API with Firebase Backend [closed]使用 Firebase 后端构建 Node.js API [关闭]
【发布时间】:2021-04-28 04:59:29
【问题描述】:

我希望可以在这里发布。我发现了很多关于 Node/Express/Firebase 设置的文章。但希望深入了解使用 Firebase 后端构建/扩展自定义 REST API 的任何未来问题。

我的计划:

  • 设置 Google Cloud Node.js 以托管我的 API(使用 Express 构建)
  • 与现有 Firebase 应用集成
  • 能够使用 REST API 为移动应用提供服务,以及自定义网站插件等...

目前他们的移动应用程序直接与 Firebase 对话,我建议我们切换到我们自己的 API,因此当我们构建产品时,它们都通过相同的对话方式运行。

我的问题是:

  • 这是一种好的做法吗?
  • 我们能够扩展(假设使用 Google Cloud/Firestore)我们应该没问题
  • 关于这种做法的任何建议或阅读文章(我发现了很多,但没有什么真正深入和有价值的)。

感谢您的见解。

【问题讨论】:

    标签: node.js firebase api express google-cloud-firestore


    【解决方案1】:

    使用 Firebase 与使用自定义 API 各有利弊。

    火力基地

    优点

    • UI 和数据库层的轻松集成
    • 集成的身份验证和安全规则
    • 实时事件监听器
    • 快速开发时间

    缺点

    • 只能在文档级别强制执行读取权限
    • 业务逻辑不能应用在这一层(必须使用 Callable Functions 或基于数据库写入触发 Cloud Functions)

    自定义 API

    优点

    • 能够在 API 中标准化数据模型和规则
    • 可以将读取权限配置到属性级别

    缺点

    • 需要自定义授权层
    • 可能需要自定义身份验证服务
    • 难以为客户提供实时推送
    • 开发时间慢得多

    构建自定义 API

    您可以使用 Cloud RunCloud Functions 在 Node 中构建自定义 API,然后通过 API Gateway 等工具对其进行管理。这将使您能够更好地控制基于 Firebase 自己的可调用函数构建的解决方案。但是,您必须推出自己的身份验证提供程序,方法是包装 Firebase REST API、使用来自 Admin SDK 的 Firebase 身份验证的自定义令牌或其他方法来创建 JWT。问题是,您是否仍需要一些向后兼容性才能让客户端直接连接到 Firebase?他们只会通过新的 API 连接吗?还是某种混合模型?

    是否需要多重身份验证?您是否期望连接到其他身份验证提供程序,例如 SAML 或 OIDC?您是否正在寻找多租户解决方案?在这种情况下,您可能会发现您已经超出了 Firebase 的一些核心功能,但您可以升级到像 Identity Platform 这样的 GCP 服务,这将为您提供 GCP 的所有功能以及 Firebase 的优势.

    最后的想法

    我想我可能给你的问题多于答案。我的感觉是,如果这是为您自己的应用程序提供服务的内部 API,请坚持使用 Firebase。如果您希望向外部用户发布功能齐全的 API,请考虑构建自定义内容。有时,将两者结合起来可以让您两全其美。

    【讨论】:

    • 感谢您的精彩回复!珍惜你的时间。 API 希望能帮助我们自己,但也许未来的开发人员也会加入。我们的目标是启用“At Checkout”插件,无论它们是在 WooCommerce、Shopify 等中。其他功能 API 来解决监控黑客尝试,谁试图攻击我们的服务器并更轻松地监控数据。我预见到的最大挑战是使用 Firebase 进行身份验证。每个解决方案总会有优缺点,只是试图找到最佳路径。
    • 作为一个普通的 Firebase 用户,我同时支持这两个用户。 Cloud Functions 不会取代专用机器,但您无法从 Cloud Functions 获得相同水平的水合和可扩展性
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 2017-06-11
    • 2021-12-04
    • 2014-06-06
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多