首页 > 解决方案 > Google firebase 的 firestore 规则阻止密钥创建/编辑

问题描述

我有以下 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。

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

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


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

allow create: if false;

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

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

allow update: if false;

要禁止更新特定字段:

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

看:


推荐阅读