テンプレ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を設定しています。


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

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

スキありがとうございます!!同時に拡散もお願いします!!
2

shogo yamada

SNSサービスを開発しています。サービスの開発記録をnoteに投稿していきます。

Flutter技術共有

Flutterで開発しているとき得た知見をひたすら公開します
1つ のマガジンに含まれています
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。