【问题标题】:Google firebase's firestore rules block key creation/editsGoogle firebase firestore 规则阻止密钥创建/编辑
【发布时间】:2018-11-26 11:47:25
【问题描述】:

我有以下 Firestore 规则,只允许用户访问他们的记录。它工作正常...

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, update, delete: if request.auth.uid == userId;
      allow create: if request.auth.uid != null;
    }    
  }
}

现在在 users 集合下,每个文档都包含一个字段/键名称“isAuthenticated”,使用服务帐户权限从服务器端后端设置为 true。

如何设置规则以确保即使经过身份验证的用户也无法更新该特定密钥?

【问题讨论】:

  • 为什么要在您的数据库中为每个用户跟踪isAuthenticated

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


【解决方案1】:

禁止所有普通用户创建文档:

allow create: if false;

但请注意,使用 Admin SDK 访问数据库的人仍然可以创建文档,因为他们以管理权限访问它。

**Update*:防止用户更新任何字段:

allow update: if false;

禁止更新特定字段:

allow update: if !("isAuthenticated" in request.writeFields);

见:

【讨论】:

  • 是的,但这是整个文档,那么文档中的特定键呢?
  • 谢谢。你是救生员。 request.writeFields 做到了。
猜你喜欢
  • 1970-01-01
  • 2021-04-24
  • 2019-03-29
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
相关资源
最近更新 更多