我希望我的 reactjs webapp 的未登錄用戶能夠只讀“業務資料集合”。

我有以下資料庫結構。
以及以下規則:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read : if true;
allow write: if request.auth != null;
}
}
}
我對 Firestore 規則很陌生,我有多種方法,這是唯一對我有用的方法。
uj5u.com熱心網友回復:
用戶Dharmaraj之前提到您的規則允許任何用戶讀取和寫入資料庫的任何集合,您可以使用規則游樂場驗證這一點。如果這是所需的行為,那么您可以忽略這些警報。
但是,您說您希望應用程式的未登錄用戶只能讀取“業務資料集合”。您可以閱讀生產就緒規則及其部分,然后使用最適合您的規則。在我看來,您應該閱讀并使用基于屬性和基于角色的訪問部分,并完成如下內容:
service cloud.firestore {
match /databases/{database}/documents {
// For attribute-based access control, Check a boolean `admin` attribute
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;
allow read: true;
// Alternatively, for role-based access, assign specific roles to users
match /some_collection/{document} {
allow read: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == "Reader"
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == "Writer"
}
}
}
雖然,您可能需要檢查它們并仔細閱讀它們,看看是否有任何其他選項更適合您。我將添加理解您的規則在做什么以及如何修復不安全規則所需的安全規則語言。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425740.html
標籤:火力基地 谷歌云火库 firebase-安全
上一篇:如何在Flutter應用程式中以離線模式使用firebaserealtime-database?
下一篇:如何獲取檔案中集合的名稱
