Next.js: تطبيق Firebase المسمى "[DEFAULT]" موجود بالفعل (تطبيق / تطبيق مكرر)

تم إنشاؤها على ١٧ مايو ٢٠١٧  ·  10تعليقات  ·  مصدر: vercel/next.js

لقد بدأت مشروعًا بناءً على https://github.com/zeit/next.js/tree/v3-beta/examples/with-firebase

الخطأ الذي أواجهه عند استيراد Firebase في أكثر من مكون.

في ملف بدء Firebase هذا:

"استيراد Firebase من" Firebase "

const firebaseConfig = {
apiKey: "fdsfsdfdsf" ،
المؤلف: "fdsfdsfsdfdsf" ،
قاعدة البيانات URL: "sdfdsfdsf" ،
معرّف المشروع: "dsfdsfdsf" ،
التخزين: "dsfdsfdsf"،
messagingSenderId: "dsfdsfsdfdsf"
}

const FbApp = firebase.initializeApp (firebaseConfig)

تصدير الافتراضي FbApp.auth () `

ثم في المكونات:

import firebase from '../lib/firebaseClient'

باستخدام مكون واحد يعمل بشكل جيد ، ولكن إذا أضفت مكونًا جديدًا بـ import firebase from '../lib/firebaseClient' فإن التطبيق يفشل:

Firebase: تطبيق Firebase المسمى "[DEFAULT]" موجود بالفعل (app / Dupate-app).
FirebaseError: Firebase: تطبيق Firebase المسمى "[DEFAULT]" موجود بالفعل (تطبيق / تطبيق مكرر).

التعليق الأكثر فائدة

يمكنك التحقق من firebase.apps لمعرفة ما إذا كان قد تم تحميله. إذا قمت بتحميله مرة واحدة فقط ، فيمكنك فقط التحقق من الطول. إذا كان لديك عدة ، فيمكنك التحقق من اسم كل تطبيق.

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

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

ال 10 كومينتر

يمكنك التحقق من firebase.apps لمعرفة ما إذا كان قد تم تحميله. إذا قمت بتحميله مرة واحدة فقط ، فيمكنك فقط التحقق من الطول. إذا كان لديك عدة ، فيمكنك التحقق من اسم كل تطبيق.

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

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

الحل:

"استيراد Firebase من" Firebase "

محاولة {
firebase.initializeApp ({
قاعدة البيانات URL: "dfgdfg"
})
} catch (يخطئ) {
// نتخطى رسالة "موجود بالفعل" وهي
// ليس خطأً فعليًا عندما نقوم بإعادة التحميل بسرعة
إذا (! / موجود بالفعل / .test (err.message)) {
console.error ("خطأ في تهيئة Firebase" ، err.stack)
}
}

const fb = firebase
تصدير الافتراضي fb`

ترجع المشكلة إلى استدعاء طريقة التهيئة لقاعدة Firebase أكثر من عدة مرات. كان لي نفس المشكلة. ويمكنني إصلاحه عن طريق تقييد استدعاء طريقة التهيئة أكثر من مرة. قم بإجراء تكوينات Firebase في فئة واحدة وجعلها فئة فردية.

أنا جديد على Firebase ومطور ويب حديث. كان لدي هذه المشكلة. نتجت مشكلتي عن ربط ملف جافا سكريبت الخاص بي في كل من رأس ونص ملف html الخاص بي. كان لدي على وجه التحديد علامات نصية Firebase و js في رأس html وعلامة نصية js أخرى في نهاية علامة النص الأساسي. كان إصلاحي هو حذف جميع علامات البرنامج النصي من الرأس ووضعها في الجزء السفلي من الجسم.

هذا هو الحل:

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

حل رائع! تضمين التغريدة

Purii لقد أنقذت يومي للتو

إذا كنت تستخدم firestore ، فاستخدم:

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

@ jide شكرا

اضطررت أيضًا إلى تضمين 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 و @ jide ، شكرًا على الحلول

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات