Androidでのfirebase、firestoreの使い方(最初の最初)
firebaseの最初の設定とfirestoreの設定、一番簡単な使い方を書いていきます。
公式のドキュメントは
Add Firebase to Your Android Project | Firebase
Get started with Cloud Firestore | Firebase
です。
firebaseの初期設定
firebaseのドキュメントやプロジェクト作成時に出てくることをすればOK
だけど、もっと簡潔にまとめる
- 設定ファイル(google-services.json)をダウンロードし、app直下に配置する。
- プロジェクトのbuild.gradleに設定を追加する。(詳細は下記)
- appのbuild.gradleに設定を追加する。(詳細は下記)
- 動くかの確認
2.の詳細
追加するのは
buildscript { // ... dependencies { // ... classpath 'com.google.gms:google-services:4.1.0' // ここ(google-services plugin) } } allprojects { // ... repositories { // ... google() // ここ(Google's Maven repository) } }
それぞれが何なのかは括弧の中の通り
3.の詳細
追加するのは
apply plugin: 'com.android.application'// ここ android { // ... } dependencies { // ... implementation 'com.google.firebase:firebase-core:16.0.3'// ここ // Getting a "Could not find" error? Make sure you have // added the Google maven respository to your root build.gradle } // ADD THIS AT THE BOTTOM apply plugin: 'com.google.gms.google-services'// ここ
動くかの確認
gradleを同期して、ビルドしてdebugでいいので動くことを確認
firestoreの設定
ただ一つ、appのbuild.gradleに以下の行を追加するだけ
dependencies { // ... implementation 'com.google.firebase:firebase-firestore:15.0.0' }
あとは、同期してビルドして動くことを確認。
(2018/10/14現在、最新バージョンにするとビルドが失敗する)
firestoreの使い方
- インスタンスの初期化
- データの追加
- データの読み取り
データの追加
以下のようにする。
// Create a new user with a first and last names val dog = HashMap<String, Any>().apply { put("name", "ポチ") put("breed", "柴犬") } // Add a new document with a generated ID db.collection("dogs") .add(dog) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()) Toast.makeText(this, "登録完了しました", Toast.LENGTH_LONG).show(); } .addOnFailureListener { e -> Log.w("MainActivity", "Error adding document", e) }
dbのコレクションは自動で作成されるので、あらかじめ準備しておく必要はない。
データの読み取り
以下の方法で取り出せる。(ただし、この方法ではコレクションの内容をすべて取得する)
db.collection("dogs") .get() .addOnCompleteListener { task -> if (task.isSuccessful) { for (document in task.result) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w("loglog", "Error getting documents.", task.exception) } }
取得したデータを利用して、ディスプレイに表示させたりしたい場合は、
if (task.isSuccessful) {}
のブロック内で行う必要がある。
おわり
以上が最初の最初の使い方です。
firestoreのもっと高度な使い方やfirebaseのほかの機能の使い方等も勉強したら記事にしていきます。