0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Nuxt.jsで2つのFirebaseプロジェクトを利用する

Last updated at Posted at 2021-07-26

概要

とある案件で 2 つの Firebase プロジェクトと通信を行う必要が出てきたので、その方法をまとめておく。それぞれの Firebase プロジェクトの用途は下記の通り。

  • FirebaseA: Realtime Database のデータを利用
  • FirebaseB: Firebase Auth の認証情報を利用

参考: 複数のプロジェクトを構成する | Firebase

実装方法

plugins ディレクトリに firebase.js を作成、実装内容は下記の通り。

firebase.js
import firebase from 'firebase'

// 1つめのFIRプロジェクトの接続設定
const originalFirebaseConfig = {
  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: ""
};

let originFirebase = null;
if (!firebase.apps.length) {
  originalFirebase = firebase.initializeApp(originalFirebaseConfig);
}

// 2つめのFIRプロジェクトの接続設定
const secondaryFirebaseConfig = {
  apiKey: "",
  authDomain: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: ""
};

let secondaryFirebase = null;
if (firebase.apps.length === 1) {
  // firebase.initializeApp()の第二引数でapp名を指定することで複数のFIRプロジェクトへアクセスすることが可能
  // 第二引数の指定がない場合は "DEFAULT" になる
  secondaryFirebase = firebase.initializeApp(secondaryFirebaseConfig, "secondary");
}

export {originalFirebase as original, secondaryFirebase as secondary}

また、firebase を利用する vue コンポーネントでは下記のように利用する。

import * as firebase from '@/plugins/firebase'

export default {
  methods: {
    async signIn() {
      // 1つめのFIRプロジェクトの認証を使う場合
      const originalAuth = firebase.original.auth();

      // 2つめのFIRプロジェクトの認証を使う場合
      const secondaryAuth =firebase.secondary.auth();
    }
  }
}

まとめ

今回は特殊ケースなので正攻法では出来ないかと思ったが、公式ドキュメントにも記載があり Firebase SDK の柔軟さを知ることが出来た。Firebase SDK自体はよく使うが、他にも知らない仕組みがあるように感じたので、これからも学びがあれば記事にできればと思う。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?