テンプレOGP_2

FlutterからFirebaseStorageにContent-Typeを指定してアップロード

Firebase Storageでは何も指定しないと、Content-Typeがapplication/octet-streamが指定されるので、アプリ側で指定して保存するのがいいと思います。

なぜなら、Cloud Functionsで画像のリサイズするときに、画像かどうかの判定ロジックに有効になったりするからです。

ちなみに自分のハマりましたw


実装

実装はこんな感じでContent-Typeを指定できます。

String storageUrl = await StorageConfig.getStorageUrl();
FirebaseStorage storage = new FirebaseStorage(storageBucket: storageUrl);
final StorageReference ref = storage.ref().child("user_icon").child(uid + ".png");
final metaData = StorageMetadata(contentType: "image/png");
StorageUploadTask task = ref.putFile(imageFile, metaData);
profileUrl = await (await task.onComplete).ref.getDownloadURL();

一番大事なのは下記の部分です。

final metaData = StorageMetadata(contentType: "image/png");
StorageUploadTask task = ref.putFile(imageFile, metaData);

この実装ではpngを設定しています。


投げ銭はいりません。それより無料でできる拡散をしてください!! 感想をツイートしていただけることが一番嬉しいです!!