对于我的Firestore中的用户集合,我有以下规则。我的目标是使用户可以仅更新其各自用户文档的名称字段。我已经使用规则模拟器对此进行了测试,该规则模拟器的数据带有对象的有效载荷,唯一的键为name
。但是,该请求被拒绝。
不幸的是,我无法调试资源的价值,所以我对为什么拒绝资源一无所知?
match /users/{user} {
allow read;
allow write: if user == request.auth.uid
&& request.resource.data.keys().hasOnly(["name"]);
}
我尝试注释掉&& request.resource.data.keys().hasOnly(["name"]);
条件,它允许更新,所以不是request.auth
问题。
我认为更新和使用request.resource.data
可能是一个问题,但是模拟器中没有发送set
请求的选项。
如果只有update
的密钥,我只能写name
的什么规则?