[英]Firestore security rule doesn't detect phone number from token when on real device
我有一個問題,即 Firestore 安全規則無法根據用戶的電話號碼過濾掉用戶。 該規則設置得很好,它適用於模擬器,但當我在真實設備上測試它時卻不行。
我有一組管理員,其中文檔 ID 是電話號碼。 我的安全規則檢查用戶的電話號碼是否存在於集合中,如果存在則返回 true。 我已根據此處的答案進行了如下設置-
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAdmin() {
return exists(path("/databases/" + database + "/documents/admins/" + request.auth.token.phone_number));
}
match /tasks/{task=**} {
allow read: if request.auth.uid != null;
allow create: if isAdmin();
allow delete: if isAdmin();
allow update: if request.auth.uid != null;
}
}
}
當我在模擬器上嘗試時,上述代碼段中的創建和刪除規則得到批准,但在真實設備上測試時失敗。 我還必須提到,如果我將過濾器從電話號碼更改為 uid,並將集合中的文檔 id 更改為 uid,則以這種方式在真實設備上運行良好 -
return exists(path("/databases/" + database + "/documents/admins/" + request.auth.uid));
感覺好像無法從auth
讀取token
值。 我正在使用 flutter package for firebase auth 和 firestore 發送請求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.