Firebaseを活用するにおいて、複数のFirebaseプロジェクトをまたいで、各Firestoreにアクセスしたいケースがある。例えば、あるユーザーマスタを、複数のアプリ/サービスから参照したいとき、各アプリ/サービス固有のプロジェクトとは別に、ユーザーマスタを保有するFirebaseプロジェクトが必要になる。
単一のFirebaseプロジェクトを利用するのであれば難はないものの、こうしたケースにおいて、特に各Firestoreに認証を伴ってアクセスする場合、どのように実装すれば良いか。この解決法が、The Firebase Blogにて紹介されていた。
↑日本語訳版
これらの記事で扱っているのはAndroidだが、当然iOSでも同じことが実現可能だ。今回はその一連の実装を試してみたので、手順を備忘録。
- 連携元: 各アプリ/サービス固有のFirebaseプロジェクト
XcodeプロジェクトにGoogleService-Info.plistを追加するのはこっち - 連携先: ユーザーマスタを保有するFirebaseプロジェクト
- 連携元のFirebase AuthenticationにGoogleログインを有効にする
- 連携先のFirebaseプロジェクトにiOSを追加し、GoogleService-Info.plistをダウンロードする
- GoogleService-Info.plist(連携先)から、CLIENT_IDを取得して、連携元のFirebase Authentication Googleログインのsafe listに追加する
- 連携箇所を以下のように実装する