FlutterでFirebaseのStorageを使う〜前編〜

先日Flutterアプリにカメラボタンをつけましたが、写真を撮ったその後の処理がなかったので、今日は撮った写真をFirebaseにつないでアップロードしてみます。

ちなみにFirebaseとは、Googleが開発・提供しているmobile Backend as as Service(mBaaS)のこと。
通常Webアプリケーションを作る際にはサーバを立てたりAWSのようなサービスを利用してバックエンドの処理を行いますが、それをサーバレスで実現する仕組みのこと(だと思う)。
認証、画像のストレージ、DB、プッシュ通知やSMSメッセージの送信など、様々なサービスが提供されています。

今回はこの画像ストレージに画像を送信します。

Firebaseにログイン、プロジェクトの作成

Firebaseにログインします。持っていない場合はgoogleアカウントを使って作成します。
「コンソール」をクリックすると、「Firebaseへようこそ」メッセージが表示されます。
「+ プロジェクトを追加」カードをクリック。
プロジェクト名を求められるので適当に入力、プロジェクトIDと地域を必要に応じて変更します。

アプリにFirebaseを追加

今作成したプロジェクトを選択します。
iOSAndroid、Webが選択できる。ひとまずAndroidを選択します。
パッケージ名が求められるので、android/app/build.gradleにあるapplicationIdを入力して「アプリを登録」ボタンを押下。
google-services.jsonをダウンロードボタンが表示されるのでクリックしてダウンロード。android/appディレクトリに配置します。 android/build.gradleandroid/app/build.gradleにそれぞれ表示されているコードをコピーします。

google-services.jsonにはAPIキーが記載されているので、そのままgit pushしないよう注意。
やってしまいGitGurdianからワーニングがきたうっかりさんはわたしです。

Storageの設定変更

左ペインの「Storage」をクリック、「ルール」タブをクリックします。
今回認証は行わないので、誰でもread&writeできるようにルールを変更します。

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}

というところで、続きはまた明日やっていきます。