簡體   English   中英

Firestore安全性規則如何檢查文檔是否由用戶(所有者)創建

[英]Firestore security rules how to check if document was created by user (is owner)

我有一個具有兩個集合的firestore數據庫:“筆記”(每個文檔存儲每個筆記的內容和authorId(對應於當前登錄的用戶uid))和“用戶”(用於存儲用戶名)每個文檔的ID是用戶的uid。 這樣,便箋的作者就可以在Firestore中連接到用戶。 我正在嘗試制作一個Web應用程序,其中僅顯示用戶創建的注釋(authorId == uid),而其他注釋則不顯示。

我試過比較resource.data.authorId和request.resource.data.authorId與request.auth.uid。

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

我只希望用戶創建的注釋顯示出來,而此規則根本不顯示注釋。

我的快速猜測是,您的代碼正在嘗試從集合中讀取所有文檔,並且您希望安全規則可以過濾數據。 這不是Firebase安全規則的工作方式。 它們不會自行過濾數據,而只是檢查以確保允許任何讀取操作。

這意味着僅允許安全訪問用戶自己創建的文檔,您將需要:

  1. 編寫查詢僅請求用戶創建自己的文檔的代碼。
  2. 編寫安全規則,然后驗證僅允許這種類型的查詢。

您的安全規則似乎是第二位的,因此您所要做的就是將查詢查詢寫入您的應用程序代碼中。

有關更多信息,請參閱有關安全查詢數據文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM