gpt4 book ai didi

firebase - Firestore 安全 - 仅允许已知字段

转载 作者:行者123 更新时间:2023-12-02 10:47:52 25 4
gpt4 key购买 nike

我不知道如何在 Firestore 中正确设置“.validate”规则。基本上,我希望允许用户文档包含我知道的字段:

user {
name: "John"
phone: "2342222"
address: "5th Avenue"
}

除了上述 3 个字段(姓名、电话、地址)之外,我不需要任何其他字段。

这些字段不会同时保存。 姓名电话将首先保存,只有当用户想要编辑他的个人资料时才会保存地址

我已经尝试了以下规则,但似乎不起作用:

allow read: if request.auth.uid == uid;
allow write: if request.auth.uid == uid &&
request.resource.data.keys() in ["name", "phone", "address"]

感谢您的帮助。

最佳答案

您可以分隔规则以包含不同的创建更新(以及删除)逻辑:

// allows for creation with name and phone fields
allow create: if request.resource.data.size() == 2
&& request.resource.data.hasAll(['name', 'phone'])
&& request.resource.data.name is string
&& request.resource.data.phone is string;
// allows a single update adding the address field
// OR (||) in additional constraints
allow update: if request.resource.data.size() == resource.data.size() + 1
&& !('address' in resource.data)
&& request.resource.data.address is string;

关于firebase - Firestore 安全 - 仅允许已知字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46606464/

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