[英]Firebase - How to set security rules so that only logged in users can read and write?
[英]How to set rules to users in firebase?
我想為我的客戶創建新規則 - 一個客戶可以在集合中創建一個文檔。
match /Users/{userId} {
allow update, delete: if request.resource.data.uid == uid;
allow create: if
request.data.uid != request.resource.data.uid;
如果請求 uid == request.resource.data.uid; 他不能。
如果您希望每個用戶只能創建一個文檔,最簡單的方法是使用用戶的 UID 作為文檔 ID。 在 JavaScript 中是這樣的:
import { doc, setDoc } from "firebase/firestore";
import { getAuth } from "firebase/auth";
const user = getAuth().currentUser;
await setDoc(doc(db, "Users", user.uid), {
displayName: user.displayName,
});
然后,您可以通過以下方式在安全規則中強制執行此內容所有者的訪問權限:
service cloud.firestore {
match /databases/{database}/documents {
// Allow only authenticated content owners access
match /Users/{userId}/{documents=**} {
allow write: if request.auth != null && request.auth.uid == userId
}
}
}
與您的方法的主要區別在於,我們不檢查文檔的數據,而是檢查文檔 ID(我們在代碼中設置為 UID)與請求中的 UID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.