簡體   English   中英

使用規則禁用 Firebase Cloud Firestore 中的查詢集合

[英]Disable querying collection in Firebase Cloud Firestore with rules

我正在使用 Firebase Cloud Firestore,我想修改我的規則以限制用戶查詢集合。

這不應該被允許:

firestore().collection("users").get()

但這應該被允許:

firestore().collection("users").doc("someUserId").get()

目前,我的規則是這樣的:

match /users/{userId} {
    allow read;
}

但此規則允許查詢“用戶”集合。

如何允許單個文檔獲取,但不允許集合查詢?

您可以將讀取規則分解為getlist get 規則適用於對單個文檔的請求,而 list 規則適用於對集合 ( docs ) 的查詢和請求。

match /users/{userId} {

  //signed in users can get individual documents
  allow get: if request.auth.uid != null;

  //no one can query the collection
  allow list: if false;
}

只要讓get ,你會很好:

match /users/{userId} {
    allow get;
}

參考: https ://firebase.google.com/docs/rules/rules-language#:~:text=Convenience%20methods-,read,-Any%20type%20of

請嘗試以下操作。 我無法測試它,所以如果我輸入錯誤,請道歉。

match /users/{userId} {
    allow read: if $(request.auth.uid) == $(userId);
}

暫無
暫無

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

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