Next.js: O aplicativo Firebase chamado '[DEFAULT]' já existe (app / duplicate-app)

Criado em 17 mai. 2017  ·  10Comentários  ·  Fonte: vercel/next.js

Comecei um projeto baseado em https://github.com/zeit/next.js/tree/v3-beta/examples/with-firebase

O erro que tenho ao importar o firebase em mais de um componente.

Neste arquivo de início do firebase:

`importar firebase de 'firebase'

const firebaseConfig = {
apiKey: "fdsfsdfdsf",
authDomain: "fdsfdsfsdfdsf",
databaseURL: "sdfdsfdsf",
projectId: "dsfdsfdsf",
storageBucket: "dsfdsfdsf",
messagingSenderId: "dsfdsfsdfdsf"
}

const FbApp = firebase.initializeApp (firebaseConfig)

exportar FbApp.auth () `padrão

Em seguida, nos componentes:

import firebase from '../lib/firebaseClient'

Com um único componente funciona bem, mas se eu adicionar um novo componente com import firebase from '../lib/firebaseClient' o aplicativo falha:

Firebase: o aplicativo Firebase chamado '[DEFAULT]' já existe (app / duplicate-app).
FirebaseError: Firebase: O aplicativo Firebase chamado '[DEFAULT]' já existe (app / duplicate-app).

Comentários muito úteis

Você pode verificar firebase.apps para ver se está carregado. Se você estiver carregando apenas uma vez, poderá verificar o comprimento. Se você tiver vários, poderá verificar o nome de cada aplicativo.

if (!firebase.apps.length) {
    firebase.initializeApp({});
}

http://stackoverflow.com/questions/37652328/how-to-check-if-a-firebase-app-is-already-initialized-on-android

Todos 10 comentários

Você pode verificar firebase.apps para ver se está carregado. Se você estiver carregando apenas uma vez, poderá verificar o comprimento. Se você tiver vários, poderá verificar o nome de cada aplicativo.

if (!firebase.apps.length) {
    firebase.initializeApp({});
}

http://stackoverflow.com/questions/37652328/how-to-check-if-a-firebase-app-is-already-initialized-on-android

A solução:

`importar firebase de 'firebase'

Experimente {
firebase.initializeApp ({
databaseURL: 'dfgdfg'
})
} catch (errar) {
// pulamos a mensagem "já existe" que é
// não é um erro real quando estamos recarregando a quente
if (! / já existe / .test (err.message)) {
console.error ('Erro de inicialização do Firebase', err.stack)
}
}

const fb = firebase
exportação padrão fb`

o problema é devido à chamada do método de inicialização do firebase mais de várias vezes. eu tive esse mesmo problema. e eu poderia corrigi-lo restringindo a chamada do método de inicialização mais de uma vez. faça as configurações do Firebase em uma classe e torne-o uma classe singleton.

Eu sou novo no firebase e um desenvolvedor web recente. Eu tive esse problema. Meu problema foi causado ao vincular meu arquivo javascript no cabeçalho e no corpo do meu arquivo html. Eu tinha especificamente as tags de script firebase e js no cabeçalho html e outra tag de script js no final da tag body. Minha correção foi excluir todas as tags de script do cabeçalho e colocá-las na parte inferior do corpo.

Essa é a minha solução:

// Config file
import * as firebase from "firebase";

const config = {...};

export default !firebase.apps.length ? firebase.initializeApp(config) : firebase.app();

// Other file
import firebase from '../firebase';
...
console.log(firebase.name);
console.log(firebase.database());

Solução brilhante! @Purii

@Purii Você acabou de salvar meu dia

Se você usar o firestore, use:

export default !firebase.apps.length
  ? firebase.initializeApp(config).firestore()
  : firebase.app().firestore();

@jide obrigado

Tive que incluir também import 'firebase/firestore';

import * as firebase from 'firebase'
import 'firebase/firestore';

const config = {
  apiKey: "***",
  authDomain: "***",
  databaseURL: "***",
  projectId: "***",
  storageBucket: "***",
  messagingSenderId: "***"
};

export default !firebase.apps.length 
  ? firebase.initializeApp(config).firestore()
  : firebase.app().firestore();

@Purii e @jide , obrigado pelas soluções

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

sospedra picture sospedra  ·  3Comentários

knipferrc picture knipferrc  ·  3Comentários

swrdfish picture swrdfish  ·  3Comentários

havefive picture havefive  ·  3Comentários

YarivGilad picture YarivGilad  ·  3Comentários