第19回|Firebase導入②:Realtime DatabaseとFirestore入門[AI]


⚙️ 準備と環境設定

前回の記事でFirebaseプロジェクトを作成し、Android Studio Otterとの連携を完了しました。本記事では、Firebaseのデータ保存機能である Realtime DatabaseCloud Firestore を使ったデータの保存・取得方法を学びます。KotlinとJetpack Composeでの実装例も紹介し、AI支援での自動コード生成も活用する手順を解説します。

Android Studio Otter
Android Studio Otter

1. Firebase Realtime Databaseの準備

Firebase Consoleで対象プロジェクトを開き、左側メニューから「Realtime Database」を選択します。「データベースを作成」をクリックし、ロケーションを選択後に「開始」を押します。ルールは初期状態ではテストモードにして、全員が読み書き可能な状態で開始できます。後でセキュリティルールを設定することを推奨します。

2. Cloud Firestoreの準備

同様に「Firestore Database」を選択し、「データベースを作成」します。開始方法は「テストモード」を選び、ロケーションを指定します。Firestoreは構造化されたドキュメント型データベースで、より高度なクエリが可能です。


🤖 Geminiによる支援の使い方

Gemini AIを活用すると、Realtime DatabaseやFirestoreのKotlinコード生成が簡単です。例えば、次のようなプロンプトを入力することで、保存・読み込み・リスナー登録までのコードを自動生成できます。

// Gemini プロンプト例
"ComposeアプリでRealtime Databaseにメッセージを保存して表示するKotlinコードを生成して" 

AIが生成したコードは、そのままAndroid Studioにコピーして利用可能です。また、Firestore用のコレクション操作やクエリも自動生成できます。


💡 Kotlinでの実装例

以下に、Realtime DatabaseとFirestoreの基本的な操作例を示します。

1. Realtime Databaseにデータを保存する例

val database = Firebase.database
val messagesRef = database.getReference("messages")

fun sendMessage(message: String) {
    messagesRef.push().setValue(message)
}

説明:Firebase Realtime Databaseの参照を取得し、`push().setValue()` で新しいメッセージを追加しています。

2. Realtime Databaseのデータを取得する例

messagesRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(snapshot: DataSnapshot) {
        val messages = snapshot.children.map { it.getValue(String::class.java) ?: "" }
        println(messages)
    }
    override fun onCancelled(error: DatabaseError) {
        println("Error: ${error.message}")
    }
})

説明:データが変更されるたびに `onDataChange` が呼ばれ、最新のメッセージリストを取得できます。

3. Firestoreにデータを保存する例

val firestore = Firebase.firestore
val messagesCollection = firestore.collection("messages")

fun addMessageFirestore(message: String) {
    val data = hashMapOf("text" to message, "timestamp" to System.currentTimeMillis())
    messagesCollection.add(data)
        .addOnSuccessListener { println("Message added successfully") }
        .addOnFailureListener { e -> println("Error adding message: $e") }
}

説明:Firestoreではコレクションにドキュメントを追加し、タイムスタンプを付与しています。

4. Firestoreからデータを取得する例

messagesCollection.orderBy("timestamp")
    .addSnapshotListener { snapshot, e ->
        if (e != null) {
            println("Listen failed: $e")
            return@addSnapshotListener
        }
        val messages = snapshot?.documents?.map { it.getString("text") ?: "" } ?: emptyList()
        println(messages)
    }

説明:リアルタイムでデータの変化を監視し、最新のメッセージを取得できます。


🧩 FirebaseまたはCloudとの連携

FirebaseのデータベースとAndroid Studioを正しく連携させるには、以下の手順を確認してください:

  1. google-services.json の配置:`app/`ディレクトリに配置
  2. Gradle設定:`firebase-bom` と各種依存関係を追加
  3. 初期化:アプリ起動時に `FirebaseApp.initializeApp(this)` を呼び出す
  4. 権限設定:Realtime DatabaseとFirestoreのセキュリティルールを本番環境用に設定

この手順で、Kotlin Composeアプリからリアルタイムデータベース操作が可能になります。


📘 まとめ

第19回では、Firebase Realtime DatabaseとFirestoreの基本操作を紹介しました。Kotlinサンプルコードを中心に、データ保存・取得・リスナー登録方法を解説し、Gemini AIを使った自動コード生成も活用しました。次回以降は、認証(Authentication)やCloud Storageとの連携方法も実践的に学ぶことができます。


🤖Android開発(Otter)[AI]Android Studio Otter × Gemini × Firebase × Google Cloud 開発支援ブログ一覧 Android Studio Otter 🩵【第1部】導入編:Android Studio Otterの準備と基本操作(1〜5回) ・ 第1回|A…
続きを読む
 zesys.net
🤖Android開発(Otter)[AI]


「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」

広告

迷子探偵やもやも [AI]

探偵はいつも迷子ですw

シェアする