[英]Can't access to Firebase Storage in Flutter
我想訪問我的 firebase 存儲中的一個文件夾,所以我使用這個 flutter 代碼來做到這一點
`
var storageRef =
firebase_storage.FirebaseStorage.instance.ref('test');
storageRef.listAll().then((value) {
value.items.forEach((element) {
print(element.getDownloadURL().toString());`
});`
});`
我通過此代碼將所有文件和文件夾設置為公開
allow read, write: if true;
但我在終端收到這條消息
W/StorageUtil(28332):請求沒有授權令牌
我認為我似乎必須對我的用戶進行身份驗證,但在我的用例中我不必這樣做
另外通過公開設置我的文件和文件夾我不需要驗證我的用戶
我的代碼或邏輯有什么問題?
消息“W/NetworkRequest: no auth token for request”是調試此問題的關鍵。
此日志消息意味着 Firebase 存儲在當前上下文中沒有看到任何登錄。 這包括匿名登錄。 這意味着沒有將授權傳遞給后端,唯一允許這樣做的方法是如果您將規則設置為完全開放(公共訪問),這是不推薦的(見下文)。
//this sets completely open access to your data
allow read, write;
我會查看您用於登錄的代碼,並確保它在任何存儲操作完成之前成功完成。 如果您確定您的授權碼是正確的,請嘗試重置設備上的數據,以便沒有保存的 state 可能會弄亂應用程序的授權信息。
您可能需要在 firebase 控制台中檢查您的存儲規則。 默認情況下,它設置為只允許經過身份驗證的用戶,像這樣
allow read, write: if request.auth != null;
我找到了解決問題的方法,首先我在終端“W/StorageUtil(28332): no auth token for request”中收到的消息不是錯誤,而是調試消息,所以我犯的錯誤是我打印getDownloadURL() 沒有等待語句,所以我將 forEach 循環中的代碼更改為這樣
var x = await element.getDownloadURL(); print(x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.