FirebaseのStorageという機能を使って画像のアップロード/ダウンロードを試してみます。
まずはこちらを参考にFirebaseの初期設定をします。
【iPhone】FirebaseのAnalytics機能を導入してみる - しめ鯖日記
次にCocoaPodsでFirebase/Storage
をインストールします。
use_frameworks! pod "Firebase" pod "Firebase/Storage"
次にFirebase Storageの設定を修正します。
今はAuthorizeしたユーザーしかファイルの読み書きをできないので、誰でもできるように変更します。
Storageのルールのrequest.auth != null
となっているところをtrue
に変更します。
次は実際にファイルをアップロードします。
サンプル画像をプロジェクトに追加します。
画像を追加したらアップロードをします。
referenceForURLの文字列だけ各自の環境に合わせて下さい。
let storage = FIRStorage.storage() let storageRef = storage.referenceForURL("gs://<your-firebase-storage-bucket>") if let data = UIImagePNGRepresentation(UIImage(named: "sample")!) { let riversRef = storageRef.child("images/rivers.jpg") riversRef.putData(data, metadata: nil, completion: { metaData, error in print(metaData) print(error) }) }
アプリを起動するとアップロードに成功した事が分かるかと思います。
アップロードしたデータは以下のようにすればNSDataとして受け取れます。
let storage = FIRStorage.storage() let storageRef = storage.referenceForURL("gs://<your-firebase-storage-bucket>") let riversRef = storageRef.child("images/rivers.jpg") riversRef.dataWithMaxSize(1 * 1024 * 1024) { data, error in print(data) print(error) }
受け取ったNSDataをUIImageにして画面に貼り付けたらアップロードした画像が表示されました。