現職で自動的にFirebaseの設定が追加できないかを調査していたところ一部はbeta版ではありますが方法があったのでメモ。
なぜ調べたのか?
普通のアプリであれば、コンソールでぽちぽちやってjsonファイルを取得すれば事足りるのですが新規で作成するアプリの数が多いことからその部分自動化したいねというところからスタートしました。
Firebase Management APIとは?
Firebaseプロジェクトの新規作成だったり、プロジェクトの情報取得や変更ができるAPIです。
利用したAPIの簡単な説明
projects.list
現在登録されているプロジェクトの一覧を取得します。該当のレスポンス情報
{
"results": [
{
"projectId": "test-52060",
"projectNumber": "206091014636",
"displayName": "test",
"name": "projects/test-52060",
"resources": {
"hostingSite": "test-52060",
"realtimeDatabaseInstance": "test-52060"
},
"state": "ACTIVE"
}
]
}
projects.androidApps.list
対象のプロジェクトに登録されているAndroidアプリの設定一覧を取得できます。ReqeustParameterの指定
parent:projects/test-52060
該当のレスポンス情報
{
"apps": [
{
"name": "プロジェクト名/androidApps/appIDが入ります",
"appId": "appID",
"projectId": "test-52060",
"packageName": "jp.test.co.jp"
},
{
"name": "プロジェクト名/androidApps/appIDが入ります",
"appId": "appIDが入ります",
"displayName": "test",
"projectId": "test-52060",
"packageName": "jp.co.k.f.pd.test"
}
]
}
projects.androidApps.create
対象のプロジェクトにAndroidアプリの設定を追加します。ReqeustParameterの指定例
parent:projects/test-52060
Requestbodyの指定例
"packageName:"パッケージ名"
"displayName": "表示名"
projects.androidApps.getConfig
こちらで該当のアプリのjsonファイルをbase64形式で取得できます。RequestParameterの指定例
parent :projects/test-52060/androidApps/appID/config
該当のレスポンス情報
{
"configFilename": "google-services.json",
"configFileContents": "base64でエンコードされた文字列"
}
まとめ
こちらを利用することでFirebaseの該当プロジェクトにアプリを追加し、jsonファイルが取得できるところまでを自動化することができました。
最初に貼ったFirebase Management APIを使って比較的簡単に自分のプロジェクトで試せるので興味がある方は一度お試ししてみるといいかも知れないです!