gpt4 book ai didi

javascript - Firestore 安全错误 : missing or insuffiecent for update method

转载 作者:行者123 更新时间:2023-11-30 20:51:24 25 4
gpt4 key购买 nike

根据以下规则,我收到了权限缺失或权限不足的错误,但仅限于更新。我可以创建新文档,但任何更新写入都被拒绝。我错过了什么?

match /msgs/{msgs} {
allow create: if request.resource.data.keys().hasAll(["name", "msg", "status", "time"]) &&
request.resource.data.size() == 4 &&
request.resource.data.name is string &&
request.resource.data.msg is string &&
request.resource.data.status is string &&
request.resource.data.status == "new" || "viewed" &&
request.resource.data.time is timestamp;
allow update: if request.resource.data.size() == 1 &&
request.resource.data.keys().hasAll(["status"]) &&
request.resource.data.status is string &&
request.resource.data.status == "new" || "viewed";
}

我的更新代码非常简单:

docRef.update({
status: "viewed"
})

最佳答案

我认为这里的问题是在 update 上,大小不是“正在更新的字段数”,而是“更新应用于请求后对象的大小,但在提交更新之前”。这意味着 request.resource.data 除了正在写入的内容之外,还与现有字段/值“混合”。然后,您将检查以确保只有一个字段发生变化。

这意味着您的规则可能如下所示:

allow update: if request.resource.data.size() == resource.data.size() &&
request.resource.data.name == resource.data.name &&
request.resource.data.msg == resource.data.msg &&
request.resource.data.time == resource.data.time &&
request.resource.data.status == "new" || "viewed";

关于javascript - Firestore 安全错误 : missing or insuffiecent for update method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com