使用 Firestore REST 的管理权限 API

Administration access using the Firestore REST API

我们发现,在我们的 use-case 中,Firestore REST API 比使用 firebase-admin 的默认数据库连接读取数据的性能要好得多。

我们在服务器上使用 Firestore,我们使用 read/write: false 规则将一些敏感数据存储在 lock-down 上。这样只有服务器可以从我们的服务帐户读取此数据。

由于 Firestore 握手过程的性能原因,我们(因为我们使用的是 lambda)使用 REST API 从数据库请求数据要快得多。

但是,我们在访问处于锁定状态的数据时遇到问题,因为授权 REST API 的唯一方法似乎是使用客户端的授权令牌。

我们需要一种通过 REST API 管理数据库访问的方法,是否有一些特殊的授权 header 或 API 密钥,我们找不到允许的地方这个?

您需要使用有权访问数据库的服务帐户的凭据进行身份验证。根据 documentation:

If you authenticate your requests with a service account and a Google Identity OAuth 2.0 token, Cloud Firestore assumes that your requests act on behalf of your application instead of an individual user. Cloud Firestore allows these requests to ignore your security rules. Instead, Cloud Firestore uses Cloud Identity and Access Management (IAM) to determine if a request is authorized.

您项目的默认 App Engine 服务帐户应该已经能够执行此操作。为您的服务帐户获得令牌后,您可以在请求的 Authorization header 中传递它,文档中也提到了这一点。