Firebase と Androidで認証、ストレージ、データベース #firebase

始まり

飲み屋で今日のメニューとかを通知出来るアプリがあると良いんだけど。
と相談されたのでFirebaseでいっちょやってみるか。とやってみました。
結論から言うと、コードラボをやりましょう。認証、データベースへの登録、表示等の扱い方を理解することができます。

やったこと

  • カメラを起動して、データを登録するAdminアプリとDBから一覧を表示するサポーターアプリの2つを作成。
  • アカウント認証 ->Googleアカウントで認証
  • 写真をとってFirebase Storageに保存。
  • 上で保存した画像のURLを取得。
  • タイトルや値段を設定してFirebase Databaseに保存
  • Databaseから一覧を取得して表示、画像のURLを取得して表示する。

スクリーンショット


ドキュメント、参考URL等


DBの書き込み権限を抑止する。

今回は、adminアプリ側で認証した人だけが書き込めれば良いので以下のようなルールを設定ユーザーUIDユーザー登録後、Authのページから参照できます。
{ "rules": { ".read": true, ".write": "auth.uid == 'ユーザー UID'" } }

各種機能のコード断片

ソースコードの断片等

storageへの保存
ディレクトリを作成しときましょう。(直下に上がると管理が…
gs://<your-storage-url>/new_dir/みたいな感じ。
https://gist.github.com/mogeta/d8abda24799d407673af3c7f908e927f ---- ----

databaseへの反映
事前にテーブルを用意する必要がなく、DTOを指定するとそのままの形でデータが突っ込まれる。これすげーな。
あらかじめ、DBのURL設計はしといたほうが良さげ。
カラム?の追加が発生した場合はそういうプログラムを毎回書くことになるのかな。

consoleからはこんな形でデータを確認出来る。


https://gist.github.com/mogeta/c4c1ec6e3e7efc1accc8fced8c10c2f7 ---- ----

感想

  • 小規模のアプリだったらFirebaseの無料アカウントでなんとかなるなーという感じ。
  • Push機能もあるのでお昼のメニューを更新したら全員に通知とか、今日は休むよ!みたいなのも実現できるでしょう。
  • FirebaseRecyclerAdapterがめっちゃ楽。Firebaseの更新がリアルタイムで反映されます。
  • コードラボで勉強が捗りそう。

このブログの人気の投稿

[Unity]「落ちたら消えるオブジェクト」の作り方

GoとDockerのお勉強 #golang #docker