【问题标题】:Firebase Firestore Security Rules for Backend Service后端服务的 Firebase Firestore 安全规则
【发布时间】:2021-11-07 00:30:28
【问题描述】:

我目前有一个 GCP/Firestore 云函数写入 Firestore。还有一个 NuxtJS 客户端从所述 Firestore DB 中读取数据。

我的 NuxtJS 客户端不使用基于用户的身份验证。这是一个显示公开信息的新闻网站。

我正在尝试将 Firestore 安全规则配置为仅允许从具有此 Firebase 项目的活动服务帐户的应用程序读取/写入/更新。

目前,我的客户端收到一条错误消息,上面写着 FirebaseError: Missing or insufficient permissions.

我已验证相关服务帐户仍处于活动状态并具有适当的权限。

我猜我的安全规则中遗漏了一些东西。

我目前的安全规则如下:

    service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
allow read, write: if request.auth != null;    }
  }
}

非常感谢任何方向。

【问题讨论】:

  • @Dharmaraj - 是的!抱歉耽搁了。果然,你是对的。我现在正在修改我的应用程序以使用 Admin SDK。再次感谢!

标签: firebase google-cloud-firestore firebase-security


【解决方案1】:

我正在尝试将 Firestore 安全规则配置为仅允许从具有此 Firebase 项目的活动服务帐户的应用程序读取/写入/更新。

安全规则仅对使用 Firebase 客户端 SDK 发出的请求有效。使用服务帐户的 Admin SDK 会绕过所有安全规则,并可以完全访问您的 Firebase 项目。由于用户不必登录您的应用程序,您可以将所有权限设置为 false:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;    
    }
  }
}

使用这些规则,只有 Admin SDK 可以向 Firestore 发出请求。如果您使用 runtime config 存储您的凭据,请确保服务帐户是私密的,以便只能在服务器端访问。

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2021-07-29
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2020-07-03
    • 1970-01-01
    相关资源
    最近更新 更多