はじめに
一つのアプリケーションで複数のFirebaseプロジェクトを利用する際に、最初にServiceAccountを使って初期化するのですが、次に別のファイルとかで使用する際に、同じように初期化しようとすると、すでに同一名で初期化されているとエラーが出ます。
再利用の仕方をドキュメントで見つけられなかったので、備忘録で...
参考
環境
- Node v13.9.0
- npm 6.14.1
現象
'Firebase app named "dest" already exists. This means you called initializeApp() more than once with the same app name as the second argument. Make sure you provide a unique name every time you call initializeApp().'
とエラーが出る。
コード公式(2つ目の別プロジェクトの設定読み込み)(databaseをfirestoreに変更)
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
var secondaryAppConfig = {
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
};
// Initialize another app with a different config
var secondary = firebase.initializeApp(secondaryAppConfig, "secondary");
// Retrieve the database.
var secondaryDatabase = secondary.firestore();
上記のsecondaryDatabaseを別のファイルで利用する
var admin = require('firebase-admin');
var secondaryDatabase = admin.app("secondary").firestore();
以上