Android

【Android】Firebase Cloud Storageに画像をアップロードする

投稿日:2019年8月19日 更新日:

はじめに

初めましてmatsunariです。普段はJavaを使ったAndroidアプリの開発を行っています。今回は、FirebaseのCloudStorageにアプリから画像データをアップロードする実装をしたいと思います。このブログでは以前にもFirebaseに関する記事があったと思いますが簡単にFirebaseについて書いておきます。

Firebaseとは

FirebaseはGoogleが提供しているモバイルおよびWebアプリケーションのバックエンドサービスで、BaaS(Backend as a Service)の一種です。
アプリのバックエンドサービス(データベースやストレージ、アナリティクスなど)を時間をかけて作ったり管理する必要がなくアプリの開発に集中することができます。

Firebase Cloud Storage を使う為の準備

今回はCloud Storageを使ってアプリ内の画像データをストレージにアップロードして保存するための実装を行ってみようと思います。
まずはFirebaseの公式チュートリアルに従って、プロジェクトを作成しましょう。
Cloud Storageのチュートリアルを参考にFirebaseSDKの導入を含んだ事前準備をおこないます。

パーミッションの追加

Android 6.0(API レベル 23)以降の端末ではパーミッションをリクエストする必要があるります。AndroidManifest内に以下の記述を追加しましょう。

次にMainActivityファイルでrequestPermissions()を行い端末が外部のストレージにアクセスすることを許可します。

これでパーミッションリクエストを行う事ができます。

実装してみましょう

今回作成するソースコード全容

今回作成したコードになります。以下こちらから説明します!

送信先のリファレンス取得

ストレージのリファレンスを取得する為にFirebaseStorageクラスのインスタンスを作成します。インスタンスからgetReference()メソッドを用いてリファレンスを取得します。StorageReferenceを設定することでストレージへのアップロードや削除などの操作を行うことができるようになります。

ストリームをつかって画像の送信

StrageReferenceのputStream()メソッドを使って端末の画像をCloud Storage上にアップロードします。呼び出し元から受け取ったPathNameから取得したFileでFileInputStreamを作成します。前項で取得したリファレンスとSaveNameで保存先のリファレンスを取得しputStream()をおこないます。streamはclose()するのですが、今回はリスナーの中で記述しているので不格好です。。。。

Firebaseコンソールでストレージを確認

あらかじめ作成しておいたFirebaseプロジェクトをブラウザで確認しましょう。
Storageに指定した画像が保存されていることが確認できます。

FirebaseStorageルールについて

CloudStorageを初めて利用する場合、ストレージ内の操作を認証されたユーザーしか行うことができません。FirebaseコンソールのStorageセクションで「ルール」というタブがあります。こちらで認証を行っていないユーザーでも画像のアップロードができるように設定を変更することができるようになります。FirebaseAuthenticationを使わない場合、以下のルールに変更することでストレージに変更を加えることができるようになります。
※どのようなユーザーでも変更、修正が加えられる設定になりますのでお気をつけを。

権限に関する情報はこちらから閲覧することができます。

さいごに

今回はAndroid端末からFirebase Cloud Storageに画像をアップロードする機能を実装しました。Firebaseはすごく便利で関単に実装できるという評判を聞いていましたが、コンソールの設定等でつまづく所があり、実装に大変時間がかかりました。Firebaseを使ってアプリ開発を行いたいと考えている方に少しでも尽力できたら幸いです。

おすすめ書籍

スッキリわかるJava入門 第2版 (スッキリシリーズ)スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)Android Studio パーフェクトガイド(Kotlin /Java対応版)

blog-page_footer_336




blog-page_footer_336




-Android
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

KotlinでAndroidの双方向DataBindingを利用する

1 はじめに2 MVVMアーキテクチャ2.1 Model2.2 View2.3 ViewModel3 KotlinでAndroid DataBindingを設定4 説明用のサンプルアプリについて5 a ...

Kotlin ChartsライブラリとCryptowatchAPIでローソク足を描画してみる。

1 はじめに2 CryptoWatchについて2.1 OHLC3 リクエスト方法3.1 CryptoWatchのAPI4 Androidでの実装4.1 実装前の準備4.2 データクラスの作成4.3 リ ...

Androidでのローカルプッシュ通知実装

1 はじめに2 WorkManagerとは?3 WorkManagerの導入4 実装例4.1 Workerの実装4.2 OneTimeWorkRequestBuilderの実装4.3 Periodic ...

はじめてのKotlinとAndroid StudioのKotlinプラグイン

1 はじめに2 Kotlinとは?3 Android Studio 2.3でのKotlinプラグイン導入3.1 Kotlinプラグインのインストール3.2 JavaコードをKotlinコードに変換3. ...

Android Studioでエラーログを詳細表示する

1 はじめに2 初期設定でのビルドエラーメッセージ3 詳細なビルドエラーメッセージを出力4 おまけ5 さいごに6 おすすめ書籍 はじめに こんにちは。Android開発を久しぶりにやっているのですが、 ...

フォロー

follow us in feedly

blog-page_side_responsive

2019年8月
 123
45678910
11121314151617
18192021222324
25262728293031

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。