株式会社ビデオマーケットの仙台オフィスでMIRAILのiOS/Androidアプリ開発を担当しているasmzです。今回はちょっとニッチなFirebaseの利用法をご紹介します。はじめに皆さんはFirebaseを利用したアプリ開発を行っている時、1つのアプリから複数のFirebaseプロジェクトを使いたくなることはありませんか?ありませんね、わかります。読み替えることで、実際に参照するFirebaseプロジェクトを使い分ける、といったことは結構あるかと思います。今回はそういう意味の「複数」ではなく、1つのビルドバイナリからFirebaseプロジェクトXとFirebaseプロジェクトY両方とも参照したい、といったケースです。普通にFirebaseを使っていれば上記のような状況になることはあまりないと思いますが、例えば以下のようにFirebaseプロジェクト自体作り直さないと対応できないような場合、既存のサービスを継続しつつもう一つFirebaseプロジェクトが欲しくなってきます。Firestoreが使用できないこのような状況の時、どう対応すれば良いのか今回まとめてみました。google-services.jsonを自身のアプリプロジェクトに取り込むことでFirebaseを利用しているかと思います。これらのファイルは1ファイル内で複数のproject_idを記載できるような形にはなっておらず、またファイル名も決まっていてビルド時に複数ファイルを取り込ませることも難しそうなので、そもそも1アプリから複数のFirebaseプロジェクトを扱える、というイメージがあまり沸かないのではないでしょうか(私がそうでした...)実はこれ、以下の通り公式でサポートされています。firebase.google.comそのため、公式ドキュメントと内容が重複する部分は多いのですが、以降は細かい説明を加えながらiOS/Androidそれぞれの具体的な設定手順をご紹介します。前提として、アプリが既に何らか1つFirebaseプロジェクトを使用中で、そこに新たなFirebaseプロジェクトを使用したいとします。今回は便宜上これをプライマリ/セカンダリと呼びます。iOS/Android共にセカンダリのFirebaseプロジェクトへのアプリの追加が必要です。これは通常のFirebaseプロジェクトと同様にFirebaseコンソールから行ってください。google-services.jsonは以降の手順でちょっとだけ使うので、どこかに保存しておいてください。上記で用意したセカンダリFirebaseAppインスタンスを用いることで、セカンダリFirebaseプロジェクトのFirebase各機能を利用することができるようになります。secondary)以降はプライマリと同じ形で利用が可能となります。Androidアプリ(Kotlin)設定手順セカンダリプロジェクトの設定Androidの方もgoogle-services.jsonを見ながら、iOSと同じようなアプローチでセカンダリFirebaseAppを用意していきます。各Firebase機能の利用方法は以下の通りです。公式ドキュメントに記載がありますが、現状Analyticsは追加Firebaseプロジェクトには対応していません。(デフォルトのプロジェクトにのみログが記録される)また、公式リファレンスを調べてみたところ、以下の機能についても追加Firebaseプロジェクトを指定するメソッドが用意されていないようなので、現状は対象外と思われます。Links(iOSのみメソッドが用意されておらず対象外。Androidにはメソッドある)まとめ以上がアプリから複数のFirebaseプロジェクトを利用する方法でした。1つのFirebaseプロジェクトで十分に要件をカバーできるのであれば、その方が良いかと思います。サービス運用中で今になってプロジェクトの構成変更が効かない場合や、新しい機能追加にあたり新たなデータベースや認証管理が必要になった場合などに、今回のような形でプロジェクトを拡張することができる、という点は覚えておいて損はないかなと思います。16:50関連記事2023-03-24【Android・MockK】ユニットテストのモックから引数に応じた値を返すこんにちは、仙台オフィスのはんだです。#iosdcこんにちは、仙台オフィスのはんだです。TV】Leanbackの画面でチェックボックスを使うこんにちは。Storageを用いたAndroidライブラリ用の社内Mavenリポジトリ...こんにちは。7はてなブログをはじめよう!vm_creatorsさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。