FireBase安全规则跨项目 [英] Firebase security rules cross project

查看:16
本文介绍了FireBase安全规则跨项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

项目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;
    }
  }
}

我收到一个错误:

Missing or insufficient permissions

因为身份验证数据来自项目A,所以项目B的FiRestore请求没有auth

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

推荐答案

坦率地说,您正在以完全错误的方式分离您的微服务。身份验证从根本上与功能捆绑在一起,密不可分--它不是微服务。即使您选择使用云函数来提供您的微服务API,也绝对没有理由在云函数背后使用单独的项目和数据库,而是完全有理由保持它们不变。

您所描述的听起来更像是试图入侵另一个服务,而不是创建可行的解决方案,而FiRestore是专门为抵制此类尝试而构建的。

这篇关于FireBase安全规则跨项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆