LoginSignup
0
0

More than 1 year has passed since last update.

別のFirebaseプロジェクトにアクセスしたい場合

Last updated at Posted at 2022-01-15

この記事を書いた理由

大体のアプリではクラッシュログとかを拾うためにFirebaseを組み込んでいるアプリが多いと思います。その場合は通常アプリ=Firebaseプロジェクトとなっていますが、例えば他のアプリとデータを共有したいとか別のFirebaseのプロジェクトにアクセスしたい場合が発生したので、共有のために貼っておきます。

ニーズが少ないのかあまり情報がなかったので、ちょっと苦労しました。と言っても数時間ではありますが。

やり方

今回は事情があってObjective-Cのコードですが、Swiftの人は置き換えてみてください。

流れとしては、別のプロジェクトを指定するためには、GoogleService-Info.plistをまるっと使います。「OtherApp.plist」とでもリネームしてプロジェクトに取り込んでください。

そして、「OtherApp.plist」へのファイルパスを指定して、FIRAppのインスタンスを作成します。
こんな感じです。

@property (nonatomic, retain) FIRAuth *auth;

-(void)setup {

    // plistのパスを取得
    NSString *filePath =[[NSBundle mainBundle] pathForResource:@"OtherApp-Info" ofType:@"plist"];

    // plistを指定してFIROptionsを作成します
    FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];

    // 読み込んだ設定に名前をつけます。
    [FIRApp configureWithName:@"OtherApp" options:options];

    // 指定した「OtherApp」を指定してFIRAppオブジェクトを作成します
    FIRApp *app = [FIRApp appNamed:@"OtherApp" ];

    // FIRAppオブジェクトを使ってFIRAuthオブジェクトを作成します
    self.auth = [FIRAuth authWithApp:app];
}

例えば、こんな感じ。

-(void)doHogehoge {

    [ self.auth signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {

        // 認証後に必要な処理(Firestoreへのアクセスとか)をここで書く

    }];
}

今回はデータを共有したかったのですが、Analyticsを一つにまとめたいとかにもいいかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0