追記
v9.13.0 で修正されました
先日のGoogle I/O でFirebase Storageのエミュレータが発表されました!
早速使ってみたところ、#getDownloadUrlを行う際に、表題のようなエラーが出てしまったので、(暫定的な)対処の覚書です。
TL;DR
Emulator > Storage内のアイテムそれぞれについて、Create New Access Token
を行う。
問題
emulator上ではファイルの存在が確認できるのに、#getDownloadUrlで [firebase_storage/unknown] Failed to retrieve a download URL.
のようなエラーがでてしまう。
再現
自分は以下の手順を行うことで再現できました。 (環境: MacOS BigSur M1, Flutter
)
- emulatorを起動し、適当に画像をemulator上のstorageに保存する
-
firebase emulators:export hode/fuga
により、エミュレータの状態をexport - emulatorを停止
-
firebase emulators:start --import=hoge/fuga
により、exportされた情報を保持した状態でemulatorを起動 - #getDownloadUrlを発火
解決法?の発見
ググったら、ほぼ同じ状況のissueがありました。 https://github.com/firebase/firebase-tools/issues/3451
emulator内で各ファイルでCreate New Access Token
のボタンをポチポチすることで解決できたというので、試してみたところ、解決できました。
ちゃんとした解決策あったら教えてください。。。
一応emulatorを動作させることはできるので解決としてはありますが、毎回ぽちぽちするのは絶対的に非合理なので、もっとちゃんとした解決法をご存知の方いらっしゃいましたらご教授いただけると幸いです。。。