gpt4 book ai didi

firebase - Firestore 规则限制对文档中特定字段的写入访问

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

我正在使用 Stripe 进行付款。为此,我在 Firestore 中有以下数据模型:

Users/{userId}/payments/{document}

每个 {document} 都是一个如下所示的对象:

{
amount: 55
token: {...}
charge: {...}
}

用户必须能够写入token字段(这是传递给服务器的内容),但我不希望用户能够写入charge字段。

目前我的规则允许任何用户读取和写入此文档:

match /payments/{documents} {
allow read, write: if request.auth.uid == userId;
}

哪些 Firestore 规则可以实现我所需的安全性?

最佳答案

我相信以下内容会起作用,它允许客户更新除费用之外的字段,以及创建没有费用字段的文档。

service cloud.firestore {
match /databases/{database}/documents {
function valid_create() {
return !(request.resource.data.keys().hasAll(["charge"]));
}

function valid_update() {
return request.resource.data.charge == resource.data.charge
|| (valid_create()
&& !(resource.data.keys().hasAll(["charge"])))
}

match /payments/{userId} {
allow read: if request.auth.uid == userId;
allow create: if request.auth.uid == userId
&& valid_create();
allow update: if request.auth.uid == userId
&& valid_update();
}
}
}

关于firebase - Firestore 规则限制对文档中特定字段的写入访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48314542/

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