firebase - 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。
如何设置规则以确保即使经过身份验证的用户也无法更新该特定密钥?
解决方案
禁止所有普通用户创建文档:
allow create: if false;
但请注意,使用 Admin SDK 访问数据库的人仍然可以创建文档,因为他们以管理权限访问它。
**更新*:防止用户更新任何字段:
allow update: if false;
要禁止更新特定字段:
allow update: if !("isAuthenticated" in request.writeFields);
看:
推荐阅读
- laravel - 试图获取非对象的属性“parent_id”
- linux - 被屏蔽的信号会丢失或排入队列吗?
- winforms - 在远程 Windows Server 上复制小文件需要时间
- spring-boot - Spring Boot:记录属性
- javascript - 如何在javascript函数中使用/绑定角度变量
- scrapy - Scrapy spider 在队列中侦听种子 URL 以爬行?
- android - 在 Android Studio 的操作栏中的菜单项中添加编辑文本
- php - xor 运算符在 PHP 和 Visual Basic 中的工作方式不同
- jquery - 为什么 jquery click 事件会触发两次
- angular - 从带有 Web API 端点的简单 HTML 表单上传文件显示“ERR_CONNECTION_RESET”