gpt4 book ai didi

javascript - 允许用户读取、写入自己的文档 Firestore

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

我正在尝试设置 firestore 安全性,以便用户可以读写自己的文档这是我用来将数据添加到数据库的代码

data() {
return {
order: {
price: null,
amount: null,
comment: null,
createdAt: new Date().toString().slice(0, 25),
uid: fb.auth().currentUser.uid
}
}
}

sendBuy() {
db.collection("orders").add(this.order);
}

这里是读取数据的代码

readData() {
let uid = fb.auth().currentUser.uid;
db.collection("orders")
.where("uid", "==", uid)
.get()
.then(querySnapShot => {
querySnapShot.forEach(doc => {
console.log(doc.id, "=>", doc.data());
});
});
}

我试过的 firestore 规则没有用

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /orders/{uid} {
allow read, write: if request.resource.data.uid == request.auth.uid;
}
}
}

请问我怎样才能做到这一点

最佳答案

这些规则应该有效:

allow read: if resource.data.uid == request.auth.uid;
allow write: if request.resource.data.uid == request.auth.uid;

要修复写入中的安全漏洞,您可以执行以下操作(保留读取相同):

allow create: if request.resource.data.uid == request.auth.uid
allow update, delete: if resource.data.uid == request.auth.uid && request.resource.data.uid == resource.data.uid

这允许任何登录的人创建属于他们的订单。它只允许用户更新与他们的 uid 匹配的订单,并且不允许他们更改 uid。

关于javascript - 允许用户读取、写入自己的文档 Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62699709/

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