もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

Firebase試してみる(Cloud Storage編)

はじめに

こんばんは。

今週は子供が体調悪くなったりとか、奥さんが体調悪くなったりとか、自分が体調悪くなったりとかで、家族揃ってダウンした週でした。

なので、ブログもぎりぎりになりました。

で、今回は前回前々回の続きで、FirebaseのCloud Storageを試してみようと思います。

ちなみにCloudStorageへアップロードするやり方は以下の本には書いてないので、公式を見ながらやってみようと思います。

WEB+DB PRESS Vol.105

WEB+DB PRESS Vol.105

  • 作者: 小笠原みつき,西村公宏,柳佳音,志甫侑紀,池田友洋,木村涼平,?橋優介,大塚雅和,飯塚直,吉川竜太,末永恭正,久保田祐史,浜田真成,穴井宏幸,大島一将,桑原仁雄,牧大輔,池田拓司,はまちや2,竹原,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/06/23
  • メディア: 単行本
  • この商品を含むブログを見る

やってみた

Storageルールの変更

Storageはデフォルトではセキュリティルールが適用されているらしいです。

デフォルトではユーザー認証が必要になるみたいです。

とりあえず、今回は上げるところだけをやってみたいので、一旦全公開にするためルールを変更しました。

f:id:kojirooooocks:20180714012614p:plain

アプリUI変更

前回までのアプリで作っていた、撮影した写真のプレビュー画面に一つボタンを追加します。

f:id:kojirooooocks:20180714012625p:plain

このボタンが押されたら、Cloud Storageにアップロードしようと思います。

Pod Install

次に、FirebaseのツールをCocoaPods経由でインストールします。

以下を追加して pod installします。

platform :ios, '11.4'
target 'test01' do
  use_frameworks!

  # Pods for test01
  pod 'Firebase/Core'
  pod 'Firebase/Auth'
  pod 'Firebase/Storage' ←これついか
end

コード修正

次は実際のswiftファイルの修正です。

先程追加したボタンに対応する IBActionを作ります。

    @IBAction func didTouchUploadButton(_ sender: Any) {
        guard let imageData = UIImageJPEGRepresentation(imageView.image!, 1.0) else {
            return
        }

        // アップロード
        let storageRef = storage.reference(forURL: "URL")
        let imageRef = storageRef.child("image_01.jpg")
        imageRef.putData(imageData, metadata: nil)
    }

実行テスト

起動して写真を取り、実際に+ボタンを押すと、特になにもUIの変化はありません(作ってないので・・・)

f:id:kojirooooocks:20180714012715p:plain

f:id:kojirooooocks:20180714012731p:plain

なにやらあがってる!!

ちょっとダウンロードしてみます。

f:id:kojirooooocks:20180714012802p:plain

f:id:kojirooooocks:20180714012818j:plain

先程アップロードしたやつでした!

終わりに

実際に上げるまではすごく簡単でしたが、認証周りのときもそうですが、これもエラー処理やアップロード成功後の通知など、実際にはもっと作り込む必要があります。

そのへんが一番たいへんそう。。。

とりあえずできました!

あーアプリ楽しいなぁ。