Next.js: L'application Firebase nommée "[DEFAULT]" existe déjà (app/duplicate-app)

Créé le 17 mai 2017  ·  10Commentaires  ·  Source: vercel/next.js

J'ai commencé un projet basé sur https://github.com/zeit/next.js/tree/v3-beta/examples/with-firebase

L'erreur que j'ai lors de l'importation de firebase dans plusieurs composants.

Dans ce fichier de démarrage Firebase :

`importer firebase depuis 'firebase'

const firebaseConfig = {
apiKey : "fdsfsdfdsf",
authDomain : "fdsfdsfsdfdsf",
URL de la base de données : "sdfdsfdsf",
ID de projet : "dsfdsfdsf",
stockageBucket : "dsfdsfdsf",
messagerieSenderId : "dsfdsfsdfdsf"
}

const FbApp = firebase.initializeApp(firebaseConfig)

exporter par défaut FbApp.auth()`

Puis dans les composants :

import firebase from '../lib/firebaseClient'

Avec un seul composant ça marche bien, mais si j'ajoute un nouveau composant avec import firebase from '../lib/firebaseClient' l'application échoue :

Firebase : l'application Firebase nommée « [DEFAULT] » existe déjà (app/duplicate-app).
FirebaseError : Firebase : l'application Firebase nommée "[DEFAULT]" existe déjà (app/duplicate-app).

Commentaire le plus utile

Vous pouvez vérifier firebase.apps pour voir s'il est chargé. Si vous ne le chargez qu'une seule fois, vous pouvez simplement vérifier la longueur. Si vous en avez plusieurs, vous pouvez vérifier le nom de chaque application.

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

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

Tous les 10 commentaires

Vous pouvez vérifier firebase.apps pour voir s'il est chargé. Si vous ne le chargez qu'une seule fois, vous pouvez simplement vérifier la longueur. Si vous en avez plusieurs, vous pouvez vérifier le nom de chaque application.

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

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

La solution:

`importer firebase depuis 'firebase'

essayer {
firebase.initializeApp({
URL de la base de données : 'dfgdfg'
})
} attraper (err) {
// on saute le message "déjà existe" qui est
// pas une erreur réelle lors du rechargement à chaud
if (!/existe déjà/.test(err.message)) {
console.error('Erreur d'initialisation Firebase', err.stack)
}
}

const fb= firebase
exporter le fb par défaut`

le problème est dû à l'appel de la méthode initialize de firebase plus de plusieurs fois. moi j'ai eu ce même problème. et je pourrais le réparer en restreignant l'appel de la méthode initialize plus d'une fois. faites les configurations de firebase dans une classe et faites-en une classe singleton.

Je suis nouveau sur Firebase et un développeur Web récent. J'ai eu ce problème. Mon problème a été causé par la liaison de mon fichier javascript à la fois dans la tête et dans le corps de mon fichier html. J'avais spécifiquement des balises de script firebase et js dans l'en-tête html et une autre balise de script js à la fin de la balise body. Ma solution consistait à supprimer toutes les balises de script de la tête et à les placer au bas du corps.

C'est ma solution :

// 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());

Solution géniale ! @Purii

@Purii Vous venez de sauver ma journée

Si vous utilisez firestore, utilisez :

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

@jide merci

Je devais aussi inclure 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 et @jide , merci pour les solutions

Cette page vous a été utile?
0 / 5 - 0 notes