Как обрабатывать повторяющуюся инициализацию приложения firebase - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в Next JS (и SSR в целом) и заметил, что при настройке Firebase я получал следующую ошибку.

//original code
import app from "firebase/app"
import "firebase/performance"
import "firebase/functions"
import "firebase/auth"
import "firebase/firestore"
import "firebase/analytics"

const config = {
  ...load config
}

const firebase = app.initializeApp(config)
export default firebase

//error
Firebase App named '[DEFAULT]' already exists

Теперь я понимаю, что это связано с код, дважды пытающийся настроить Firebase. На Github есть поток , предлагающий несколько аналогичных решений, например, ниже.

import * as firebase from "firebase"
import "firebase/performance"
import "firebase/functions"
import "firebase/auth"
import "firebase/firestore"
import "firebase/analytics"

const config = {
  ...load config
}

const firebaseApp = !firebase.apps.length ? firebase.initializeApp(config) : firebase.app()

export default firebaseApp

Однако в этом новом коде есть новая проблема: Firebase дает мне следующее предупреждение :

It looks like you're using the development build of the Firebase JS SDK. When deploying Firebase apps to production, it is advisable to only import the individual SDK components you intend to use.

Есть ли способ проверить, существует ли уже инициализированное приложение Firebase без импорта всей библиотеки?

1 Ответ

0 голосов
/ 14 июля 2020

Я нашел решение, которое работает. Вы можете проверить инициализированные приложения, набрав firebase/app.

//original code
import firebase from "firebase/app"
import "firebase/performance"
import "firebase/functions"
import "firebase/auth"
import "firebase/firestore"
import "firebase/analytics"

const config = {
  ...load config
}

const firebaseApp = firebase.apps.length ? firebase : firebase.initializeApp(config)

export default firebaseApp
...