我正在使用firebase存儲爲我的android應用上的用戶存儲和加載圖片。所有用戶在使用之前都必須經過認證。偶爾,某些用戶配置文件圖像不會顯示並拋出「403 Forbidden」錯誤。那些圖像顯示之前,我不知道他們爲什麼停止工作。 我使用我的火力存儲以下規則:嘗試從Firebase存儲中加載圖片時出現403禁止的錯誤
service firebase.storage {
match /b/<storage_address>.appspot.com/o {
match /{allPaths=**} {
allow read: if request.auth != null;
allow write: if request.auth != null;
}
}
}
如果我改變所讀取的規則來allow read;
所有圖像都正常工作。 這是我的顯示方法:
Picasso.Builder builder = new Picasso.Builder(this);
builder.listener(new Picasso.Listener()
{
@Override
public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception)
{
exception.printStackTrace();
}
});
builder.build().load(URL).into(imgView);
圖像的URL看起來是這樣的:
https://firebasestorage.googleapis.com/v0/b/<storage_address>.appspot.com/o/images%2Fprofile%2Fphoto%2F36805?alt=media&token=e62ec151-3aaf-4e5c-aefb-1b3c93828684
難道是與令牌?
您是否使用StorageReference.getDownloadUrl()傳遞給'builder.build().load(URL)'的URL?如果是這樣,我不知道如何改變安全規則會影響行爲。通過此URL訪問文件是公開的 - 不受規則控制。 –
我懷疑403錯誤不是圖片下載的結果,而是別的,比如您打電話來獲取下載URL。發佈您用於獲取URL的代碼。 –