Firebase 安全规则跨项目

Rya*_*yan 5 firebase firebase-security firebase-authentication google-cloud-firestore

项目 A 具有 Firebase 身份验证,项目 B 具有 Firebase Firestore。身份验证和 Firestore 都可以正常工作: https: //firebase.google.com/docs/projects/multiprojects (Web)

但是,在编写以下项目 B Firestore 安全规则时:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow get: if request.auth.uid == uid;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Missing or insufficient permissions
Run Code Online (Sandbox Code Playgroud)

auth由于身份验证数据来自项目 A,因此项目 B 的 Firestore 请求中没有数据。

如何使用 JavaScript/Web 向项目 B 提供项目 A 的身份验证信息?

Lea*_*mer 1

坦率地说,您正在以完全错误的方式“分离微服务”。身份验证从根本上与功能相关,并且密不可分——它不是“微服务”。即使您选择使用 Cloud Functions 来提供“微服务 API”,也绝对没有理由在 Cloud Functions 背后使用单独的项目和数据库,并且完全有理由保持它们相同。

您所描述的内容听起来更像是尝试破解其他服务,而不是创建可行的解决方案,而 Firestore 是专门为抵制此类尝试而构建的。