メモ > 技術 > サービス: AmazonSNS > Android: Firebaseの設定
Android: Firebaseの設定
■Firebaseプロジェクトの作成
公式サイト
https://firebase.google.com/
コンソール
https://console.firebase.google.com/
Firebaseのコンソールにアクセスし、「プロジェクトを追加」をクリック。
プロジェクト名: PushTest1
プロジェクトID: pushtest1-aeb26(プロジェクト名から自動で入力されるが、後から判りやすいように編集し直してもいい。)
「続行」をクリック。
「このプロジェクトで Google アナリティクスを有効にする」にチェックが入っていることを確認する。
「続行」をクリック。
アナリティクス用に既存のアカウントを選択するか、新しいアカウントを作成する。
(今回は開発用である「refirio」を選択した。「このアカウントに新しいプロパティを自動的に作成します」と表示された。)
「プロジェクトを作成」をクリック。
しばらく待つと「新しいプロジェクトの準備ができました」と表示される。
「続行」をクリック。
「アプリに Firebase を追加して利用を開始しましょう」という画面へ遷移する。
「開始するにはアプリを追加してください」の文言の上にある、Androidのアイコンをクリック。
「Android アプリに Firebase を追加」という画面へ遷移する。
※後から確認すると、アナリティクス側で「refirio」内に「pushtest1-aeb26」というプロパティが作成されていた。
またアプリ側で何かプログラムを書いたわけでも無いのに、「ユーザー」「イベント数」に反応がある。
最低限(アクティビティ単位でのアクセス数?)のことは自動で計測されているのか。
■Firebaseアプリの作成
「1 アプリの登録」という画面になる。
Android パッケージ名: net.refirio.pushtest1
アプリのニックネーム: PushTest1
デバッグ用の署名証明書 SHA-1: (空欄)
※まずはニックネーム「PushTest1 Dev」で開発版用に作るか…と思ったが、重複してAndroidパッケージ名を登録することができない。
つまり「net.refirio.pushtest1」用に作るのは「PushTest1」であり、これは本番環境用に使うべきものとなる。
iOSでは最初に開発版用にプッシュ通知証明書を作成しているが、これは「パッケージ名は本番用と同じだが、開発用に『Development SSL Certificate』を登録できる」なので、Androidとは少し性格が違うものだと思われる。
※後述の「考察: アプリのIDについて」も参照。
基本的には、プロジェクト自体を分ける方が良さそうではある。
※プロジェクト名には「android」という文字を含めておく方がいいか。
つまり「pushtest1-android」「pushtest1-android-stg」「pushtest1-android-dev」のような名前にするか。
ただし今回のように「iOSではFirebaseを使わない」「最終的にはAmazonSESから送信する」という場合、「android」という文字を含めなくても支障は無い。
FirebaseはGoogleのサービスなので、「もしiOS用に作ることがあれば『-ios』という接尾語を付ける」でいいかもしれない。
※某会社アプリの場合、「xxxxx」プロジェクトの中に「xxxxx-android」「xxxxx-android-stg」「xxxxx-android-dev」がある。
ただし、その後に作った別アプリは
「yyyyy」プロジェクトの中に「yyyyy」「yyyyy-dev」があり、
「yyyyy-staging」プロジェクトの中に「yyyyy」「yyyyy-dev」があり、
となっている。
上記を入力して「アプリを登録」をクリック。
「2 構成ファイルをダウンロードして追加する」という画面になる。
「google-services.json をダウンロード」をクリック。
表示される解説どおり、「Androidプロジェクトの新規作成」で作成したアプリの「app」直下にファイルを配置する。
(Android Studio で「Android」ではなく「Project」に表示を切り替え、「app」フォルダアイコンに対してドラッグ&ドロップで配置する。その後、また「Android」に戻しておく。)
配置できたら「次へ」をクリック。
「3 Firebase SDK の追加」という画面になる。
「Groovy(build.gradle)」を選択する。
プロジェクト直下の build.gradle と、「app」直下の build.gradle に指定のコードを追加する。
追加したら、AndroidStudioの画面上部に「sync now」が表示されるのでクリックする。
ビルドが完了されるまで待つ。完了したら「次へ」をクリック。
以上で完了。
「コンソールに進む」をクリック。
※同じプロジェクト内に同じアプリで再作成する場合、
「プロジェクトの設定 → PushTest1 → SDKの手順を確認する」から作業できる。
■参考
プロジェクト直下の build.gradle と、「app」直下の build.gradle に追加したコードは以下のとおり。
プロジェクト直下の build.gradle:
plugins {
〜略〜
id("com.google.gms.google-services") version "4.4.2" apply false … 追加
}
「app」直下の build.gradle:
plugins {
〜略〜
id("com.android.application") … 追加
id("com.google.gms.google-services") … 追加
}
dependencies {
〜略〜
implementation(platform("com.google.firebase:firebase-bom:33.5.0")) … 追加
implementation("com.google.firebase:firebase-analytics") … 追加
「id("com.android.application")」というのも記載されているが、これは「alias(libs.plugins.android.application)」があるので追加不要みたい。
(追加すると「すでに読み込まれている」のエラーになる。)
なお、ダウンロードした google-services.json には以下のような内容が記載されている。
{
"project_info": {
"project_number": "884881935685",
"project_id": "pushtest1-aeb26",
"storage_bucket": "pushtest1-aeb26.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:884881935685:android:cc453484c4825b2153022c",
"android_client_info": {
"package_name": "net.refirio.pushtest1"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyDYzY_QZPAGTpm20Pa69ExMWrNbCQukz1o"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}