如何为第 3 方开发人员构建安全的 Firestore API:SDK vs Firebase REST API vs https 函数?

How to build a secure Firestore API for 3rd party developers: SDK vs Firebase REST API vs https functions?

我必须使用 Firebase 构建一个 API,并且在设计选择方面需要一些帮助。我希望能够将 API 出售给用户,然后用户可以将其用于 build/integrate 自己的应用程序。用户将拥有读写权限。

一般信息:

我注意到可以通过 3 种不同的方式向我的 Firestore 数据库的用户提供 API:

  1. https 触发的云函数(https://firebase.google.com/docs/functions/http-events
  2. 使用 SDK (https://firebase.google.com/docs/firestore/client/libraries)
  3. 使用 Firbase 提供的 REST API (https://firebase.google.com/docs/firestore/use-rest-api)

API要求:

我目前的做法是:

我的问题:

提前致谢

TL;DL:这取决于您想用这个 API 做什么,以及调用它的 devices/users 的数量和类型。

在回答您的问题之前,我将在下面列出每种方法的优点:

  • 云函数:

Cloud Function 是一种功能即服务解决方案,因此它也是您的 API 的托管服务,因此您无需配置、管理或升级服务器和 API会根据负载自动缩放。此选项还考虑了 SDK 和客户端库的优点,因为您的代码无论如何都必须使用它来连接到 Firestore。

  • SDK 和客户端库:

这是访问 Firestore 的最简单和更优化的方法,但是,运行 无法使用本机库的环境(例如 IOT 设备)将被排除在您的解决方案之外,因此在实施此方法时请考虑这一点选项。

  • Cloud Firestore REST API:

每台经过适当授权可以访问 Firestore 的设备都可以访问。

注意:对于 SDK 和 REST API,您需要考虑托管您的 API,或者在 Cloud Functions 上,如前所述,App Engine Standard、App Engine Flex 或 Compute Engine 服务器实例。

综上所述,由您和您的 API 的使用情况和要求决定哪个选项最适合考虑上述几点。

根据安全性,我想说如果 firebase 规则和 firebase 身份验证设置正确,所有选项都是安全的。