※記事内に広告を含む場合があります

ニフクラ mobile backend終了⇒FirebaseのCloud Firestoreへ切替(java)

android開発環境構築(アイキャッチ画像) android開発
android開発環境構築

プロジェクト(Firebase)作成

先ほどのプロジェクト作成ではデフォルトのプロジェクトが作成されましたが、今回は特定のプロジェクトIDを指定して新しいプロジェクトを作成します。手順は以下の通りです。まず、Firebaseコンソール画面にアクセスしてください。次に、以下のリンクをクリックします。

Sign in - Google Accounts

下記画面が現れたら「プロジェクトを追加」をクリックします

プロジェクト名を入力する画面が表示されます。ここでは「research」という名前を入れました。「続行」ボタンをクリックしてください。

「Google アナリティクス」を有効にするかどうかを確認する画面が表示されます。今回は「Google アナリティクス」を有効にしないでプロジェクトを作成することにします。

※「Google アナリティクス」については、先ほどの「Firebaseプロジェクトを作成する」を参考にしてください。

「プロジェクトを作成」をクリックします。

「続行」ボタンをクリックします。

プロジェクトの概要ページが表示されます。

androidアプリ登録

プロジェクトには、Android、iOS、Web、Unityのアプリを登録できます。今回は、Androidアプリを登録しますので、プロジェクトの概要ページでAndroidアイコン(通称「ドロイド君」)をクリックします。

アプリ登録画面が表示されます。

以下の情報を入力します。

androidパッケージ名(必須):Android StudioのプロジェクトModuleのbuild.gradleに設定したapplicationId名

アプリのニックネーム(省略可):任意の名前(例:研究開発(覚えてねこ!))

デバッグ用の署名証明書 SHA-1(省略可):アプリを一意に識別する署名証明書のハッシュ値。Android Studioの「signingReport」で確認することができます。(省略しても後で『Firebaseホーム』-『プロジェクト名』-プロジェクトの名前をクリックして『設定マークを表示してクリック』-『全般タブ』-マイアプリセクションのSHA 証明書フィンガープリントで『フィンガープリントを追加』で追加可能です)

voxねこ夫婦:夫
voxねこ夫婦:夫

「デバッグ用の署名証明書 SHA-1」は省略できますが、一部のサービスでは必要です。例えば、「Firebase Authentication」や「Firebase Realtime Database」、そして「Firebase Cloud Messaging (FCM)の通知」などです。これらのサービスを利用する際には、署名証明書 SHA-1が必要で、設定がないとエラーが発生します。「Firebase Authentication」はほぼ必須ですので、設定することをお勧めします。

「デバッグ用の署名証明書 SHA-1」は、Android Studioであれば以下の手順で確認できます。

  1. Android Studioを開きます。
  2. 「Gradle」タブをクリックします。
  3. プロジェクトのルートディレクトリで「Tasks」 → 「android」 → 「signingReport」を展開します。
  4. 「signingReport」をダブルクリックすれば、「実行」タブにSHA-1が表示されます。
voxねこ夫婦:夫
voxねこ夫婦:夫

プロジェクトのルートディレクトリに「Tasks」が表示されていない場合、「ファイル」-「設定」-「Experimental」の「Do not build Gradle task list during Gradle sync」を確認してください。チェックされている場合は、チェックをはずし、再び、Gradleタブで「Gradleプロジェクトの再ロード」をクリックすることで「Tasks」が表示されます。

voxねこ夫婦:夫
voxねこ夫婦:夫

「signingReport」を実行すると、「実行構成のドロップダウンメニュー」が「プロジェクト名[signingReport]」に自動的に変更されます。Androidアプリのデバッグや実行をする場合は、再び「app」に切り替えて実行する必要があります。
切り替えない場合、デバッグできないなど、下記のような状況になるかもしれません。

接続設定

次に、Androidアプリを作成するための開発ツールであるAndroid SDKを使用して、作成したプロジェクトをFirebaseプロジェクトに接続するための設定を行います。

Firebase構成ファイル追加

「アプリを登録」ボタンをクリックすると以下の画面に切り替わります。

「google-services.jsonをダウンロード」をクリックしてFirebase構成ファイルをダウンロードします。

ダウンロードしたファイルをAndroidプロジェクトのアプリレベルモジュールのルートディレクトリに移動させてください。ルートディレクトリは「app」と同じ階層にあります。ここにアクセスするには、プロジェクトタブで操作をします。

voxねこ夫婦:夫
voxねこ夫婦:夫

もし implementation project(‘:common’) のように、アプリの中で同じコードを再利用している場合、その共通のコードをアプリ全体で使えるようにするために、「google-services.json」を共通のプロジェクトにもコピーする必要があります。その際、コピーした「google-services.json」ファイル内のパッケージ名も、共通のプロジェクトに合わせて変更する必要があります。

「次へ」ボタンをクリックします。

AndroidプロジェクトにFirebaseSDKを追加する手順の画面が表示されます。言語がJavaのため、Groovy(build.gradle)を選択します。

ガイドに書かれている手順に従って、Androidプロジェクトのルートレベル(プロジェクト レベル)の Gradle ファイル(build.gradle)の依存関係として Google サービス プラグインを追加します。

plugins {
             ・
    id 'com.google.gms.google-services' version '4.3.15' apply false
             ・
}

Androidプロジェクトのモジュール(アプリレベル)の Gradle ファイル(build.gradle)に、Google サービス プラグインを追加します。

plugins {
             ・
    id 'com.google.gms.google-services'
             ・
}
voxねこ夫婦:夫
voxねこ夫婦:夫

もし implementation project(‘:common’) のように、共通のコードを別のモジュールで使い回している場合は、共通モジュールの Gradle ファイル(build.gradle)にも設定を追加する必要があります。

FirebaseSDK追加

Androidプロジェクトのモジュール(アプリレベル)の Gradle ファイル(build.gradle)に、アプリで使用するFirebase プロダクトの依存関係を追加します。

dependencies {
             ・
    // Import the Firebase BoM
    implementation platform('com.google.firebase:firebase-bom:32.7.0')
    implementation "com.google.firebase:firebase-firestore"
             ・
}
voxねこ夫婦:夫
voxねこ夫婦:夫

Firebase Android BoM(部品表)は、Firebaseライブラリの複数のバージョンを管理する便利な機能です。BoM(部品表)のバージョンを指定するだけで、他のライブラリは、バージョンを記入しなくても自動的に依存関係を考慮してくれます。

「次へ」ボタンをクリックすると、最後の確認画面が表示されます。

確認をしたい場合は、「このドキュメント」:Firebaseのマニュアル、「サンプルのFirebaseアプリ」のリンクをクリックします。

「コンソールに進む」ボタンをクリックすると、Firebaseのホーム画面が表示されます。これで、Firebaseへの接続設定は完了です。

セキュリティ(テストモード)を確認する

「サイドメニューアイコン」の「Firestore Database」をクリックします。

データタブが表示されています。(データベースの作成直後ですので何もありません)

「ルール」タブをクリックします。

この画面には、「テストモード」でデータベースの「モード」を選択したときに作成されたセキュリティのルールが表示されています。

    match /{document=**} {
      allow read, write: if request.time < timestamp.date(2024, 2, 15);
    }

上記のルールでは、2024年2月15日まで、すべてのドキュメントに対して誰でもデータの読み込みや書き込みが可能です。日付を変更すれば、許可される期間を延ばすことができます。

/{document=**}がすべてのドキュメントという意味です。ここにコレクション名を指定すると、そのコレクション内のセキュリティのルールになります。

    match /myCollectionName/{anything=**} {
      allow read, write: if true;
    }


上記の設定は、期限を設けず、すべてのユーザーがコレクション内の操作が可能という意味です。セキュリティ上の問題があるため、テスト時など、データが壊れても問題ない前提でのみ、この設定を行ってください。

Cloud Firestore セキュリティルールの詳細は、下記に記載されています。

Cloud Firestore セキュリティ ルールの条件の記述  |  Firebase

コメント

タイトルとURLをコピーしました