gpt4 book ai didi

swift - Firestore 安全规则违反更新规则

转载 作者:行者123 更新时间:2023-11-28 05:55:23 29 4
gpt4 key购买 nike

我昨天发布了一个关于此的问题,但我正在创建一个包含更多详细信息的新问题。 Firestore .setData is blocked by update rule not create

我已经运行了模拟器并且规则在那里起作用。此外,当我创建文档并将 swift 代码中的 setData 更改为 update 时,代码可以正常工作。它似乎只在创建文档时失败。但要注意的是,当我删除 update 规则或只是将其更改为 allow update: if false; 时,setData(或被视为由规则创建)正确执行。我不知道发生了什么,也不知道有什么工具可以让我获得更好的洞察力。

 match /users_real/{userID} {
allow create: if true;
allow read: if isOwner(userID);
allow update: if (request.writeFields.size() == 1);

设置数据:

self.docRef.collection("users_real").document("adfadsf").setData(post) { (error) in

if let error = error {
print("He dead!: \(error.localizedDescription)")


}
else {
print("it worked, for now")


}
}

最佳答案

Firebase 支持人员确认存在与 request.writeFields.size() 评估相关的错误。没有给出修复时间的估计。

bug的存在可以通过以下规则来证明:

service cloud.firestore {
match /databases/{database}/documents {

match /cities/{city} {
// This should always evaluate to true, but does not.
allow create: if (request.writeFields.size() == 1) || (request.writeFields.size() != 1);
allow update: if true;
}
}
}

尽管 create 规则的计算结果应始终为真,但创建城市的尝试会因权限被拒绝而失败。似乎 request.writeFields 的问题不仅影响它出现的规则,而且影响路径的其他规则。对于上面显示的规则,尝试更新现有城市也会因权限被拒绝而失败。

关于swift - Firestore 安全规则违反更新规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51633681/

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