1
我試圖根據字段查詢文檔。Firestore數據庫規則:查詢的權限
因爲這個領域我有權限讀取這個文件:如果我試圖擷取此文件
match /lists/{list=**} {
allow read: if resource.data.name == 'MyDocument'
}
直接是成功的(使用科特林Android客戶端):
val doc = db.document("lists/acaa0247-eccd-4ff0-b986-7f8b6187e45f")
doc.get().addOnCompleteListener { task ->
if (task.isSuccessful) {
// here it works
println("This Works")
} else {
println("Failed")
}
}
但是當我查詢它(或只是試圖獲取集合中的所有文檔)時,我會得到一個拒絕例外的許可:
val collection = db.collection("lists")
collection.get().addOnCompleteListener(activity, { task ->
if (task.isSuccessful) {
println("Should work")
} else {
// Here is isn't working
println("Failed")
}
})
此查詢的工作時,我讓大家窮究/lists
下:
match /lists/{list=**} {
allow read: if request.auth != null
}
所以我的問題是:是否用戶無需讀取其上搜索查詢中的所有文件訪問? 在我的情況下,這將意味着在/lists
所有字段的所有文件?
所以當使用'collection.whereEqualTo(「name」,「MyDocument」)。get()'它應該工作嗎?剛剛嘗試過,我也得到了拒絕例外的權限。 –
是激動人心的。然後你將創建一個索引,並在安全規則中確保用戶實際上有權訪問。 – DauleDK
Btw @MarcelBochtler - 在此處查詢查詢語法:https://firebase.google.com/docs/firestore/query-data/queries – DauleDK