Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

アプリをFirebaseに接続し、アプリをFirebaseに接続します

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

まだ行っていない場合は、 Firebase を Android プロジェクトに追加します

データベースを作成する

  1. Firebase コンソールRealtime Databaseセクションに移動します。既存の Firebase プロジェクトを選択するよう求められます。データベース作成ワークフローに従います。

  2. Firebase セキュリティ ルールの開始モードを選択します。

    テストモード

    モバイルおよび Web クライアント ライブラリの使用を開始するのに適していますが、誰でもデータの読み取りと上書きを行うことができます。テスト後「Firebase Realtime Database ルールを理解する」セクションを必ず確認してください。

    Web、Apple、または Android SDK を開始するには、testmode を選択します。

    ロックモード

    モバイルおよび Web クライアントからの読み取りと書き込みをすべて拒否します。認証されたアプリケーション サーバーは引き続きデータベースにアクセスできます。

  3. データベースの場所を選択します。

    データベースの場所に応じて、新しいデータベースの URL は次のいずれかの形式になります。

    • DATABASE_NAME .firebaseio.com ( us-central1のデータベース用)

    • DATABASE_NAME . REGION .firebasedatabase.app (他のすべての場所のデータベース用)

  4. [完了]をクリックします。

Realtime Database を有効にすると、 Cloud API Managerの API も有効になります。

Realtime Database SDK をアプリに追加する

モジュール (アプリ レベル) の Gradle ファイル(通常は<project>/<app-module>/build.gradle ) で、Realtime Database Android ライブラリの依存関係を追加します。ライブラリのバージョン管理には、 Firebase Android BoMを使用することをお勧めします。

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database'
}

Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。

(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する

Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。

アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database:20.1.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx'
}

Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。

(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する

Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。

アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx:20.1.0'
}

Realtime Database ルールの構成

Realtime Database は、データの構造化方法、インデックスの作成方法、およびデータの読み取りと書き込みを行うタイミングを定義できる宣言型ルール言語を提供します。

データベースに書き込む

getInstance()を使用してデータベースのインスタンスを取得し、書き込み先の場所を参照します。

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

この方法で、Java オブジェクトを含むさまざまなデータ型をデータベースに保存できます。オブジェクトを保存すると、すべてのゲッターからの応答がこの場所の子として保存されます。

データベースから読み取る

アプリのデータをリアルタイムで更新するには、作成した参照にValueEventListenerを追加する必要があります。

このクラスのonDataChange()メソッドは、リスナーがアタッチされたときに 1 回トリガーされ、子を含むデータが変更されるたびに再度トリガーされます。

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

Kotlin+KTX

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException())
    }
})

オプション: ProGuard を構成する

アプリで Firebase Realtime Database を ProGuard と共に使用する場合、難読化後にモデル オブジェクトをどのようにシリアル化および逆シリアル化するかを考慮する必要があります。 DataSnapshot.getValue(Class)またはDatabaseReference.setValue(Object)を使用してデータを読み書きする場合は、 proguard-rules.proファイルにルールを追加する必要があります。

    # Add this global rule
    -keepattributes Signature

    # This rule will properly ProGuard all the model classes in
    # the package com.yourcompany.models.
    # Modify this rule to fit the structure of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

ProGuard に関する質問や問題のヘルプを得るには、 Guardsquare コミュニティ フォーラムにアクセスして専門家から支援を受けてください。

打ち上げの準備

アプリをローンチする前に、ローンチ チェックリストを確認して、アプリの準備が整っていることを確認することをお勧めします。

App Checkを有効にして、自分のアプリだけがデータベースにアクセスできるようにしてください。

次のステップ