如何制定安全的 Cloud Firestore 安全规则

时间:2021-01-16 04:59:08

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

所以我试图弄清楚 Cloud Firestore 规则是如何工作的,并制作了一个简单的应用程序来学习如何编写安全规则。该应用程序基本上向所有用户显示新闻,并允许用户在没有获得用户身份验证的情况下向管理员分享建议(无需注册)。所以我想如果我将 allow write: if true; 用于包含用户建议的文档,它会是安全的,但我收到来自 firebase 的警告,我的 firestore 云规则不安全。所以我认为它不安全,因为也许任何人都可以重写/删除 users_suggestion 文档中的整个数据。我仍然需要在没有获得用户身份验证的情况下实现安全规则,如果您知道如何请帮助

这是规则的样子:

service cloud.firestore {
  match /databases/{database}/documents {
    
    match /users_suggestion/{documents}{
    allow read: if request.auth != null
    allow write: if true;
    }
    match /news/{documents}{
    allow read;
    allow write: if request.auth != null
    }
  }
}

集合是:users_suggestionnews

1 个答案:

答案 0 :(得分:0)

安全规则因应用程序而异。

在允许读取 /users_suggestion/{documents} 已验证用户的规则中,write 是更高级别的操作,因此用户也应进行身份验证。

Firebase 提供了非常灵活的安全规则来保护 Cloud Firestore、实时数据库和 Cloud Storage 中的数据。

除了仅检查用户身份验证外,您还应使用安全条件提供窄访问。

  • 基于角色的访问
  • 基于属性的访问
  • 混合公共和私人访问

参考文献:

  1. https://firebase.google.com/docs/firestore/security/rules-structure
  2. https://firebase.google.com/docs/rules/basics