Next.js: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Firebase с ΠΈΠΌΠ΅Π½Π΅ΠΌ "[DEFAULT]" ΡƒΠΆΠ΅ сущСствуСт (app / duplicate-app)

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 17 мая 2017  Β·  10ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: vercel/next.js

Π― Π½Π°Ρ‡Π°Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° основС https://github.com/zeit/next.js/tree/v3-beta/examples/with-firebase

Ошибка, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ firebase Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅.

Π’ этом стартовом Ρ„Π°ΠΉΠ»Π΅ firebase:

`ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ firebase ΠΈΠ· 'firebase'

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

const FbApp = firebase.initializeApp (firebaseConfig)

экспорт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ FbApp.auth () `

Π—Π°Ρ‚Π΅ΠΌ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…:

import firebase from '../lib/firebaseClient'

Π‘ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Ссли я добавлю Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с import firebase from '../lib/firebaseClient' ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой:

Firebase: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Firebase с ΠΈΠΌΠ΅Π½Π΅ΠΌ "[DEFAULT]" ΡƒΠΆΠ΅ сущСствуСт (app / duplicate-app).
FirebaseError: Firebase: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Firebase с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«[DEFAULT]Β» ΡƒΠΆΠ΅ сущСствуСт (app / duplicate-app).

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ 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 ({
databaseURL: 'dfgdfg'
})
} catch (err) {
// ΠΌΡ‹ пропускаСм сообщСниС "ΡƒΠΆΠ΅ сущСствуСт", ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅
// Π½Π΅ настоящая ошибка ΠΏΡ€ΠΈ горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅
if (! / ΡƒΠΆΠ΅ сущСствуСт / .test (сообщСниС ΠΎΠ± ошибкС)) {
console.error ('Ошибка ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Firebase', err.stack)
}
}

const fb = firebase
экспорт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ fb`

ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ firebase. Ρƒ мСня Π±Ρ‹Π»Π° такая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠΈ я ΠΌΠΎΠ³ Π±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ² Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°. сдСлайтС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ firebase Π² ΠΎΠ΄Π½ΠΎΠΌ классС ΠΈ сдСлайтС Π΅Π³ΠΎ одноэлСмСнтным классом.

Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² firebase ΠΈ Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Π£ мСня Π±Ρ‹Π»Π° эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Моя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° связываниСм ΠΌΠΎΠ΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° javascript ΠΊΠ°ΠΊ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, Ρ‚Π°ΠΊ ΠΈ Π² Ρ‚Π΅Π»Π΅ ΠΌΠΎΠ΅Π³ΠΎ html-Ρ„Π°ΠΉΠ»Π°. Π’ частности, Ρƒ мСня Π±Ρ‹Π»ΠΈ Ρ‚Π΅Π³ΠΈ firebase ΠΈ js script Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ html ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚Π΅Π³ сцСнария js Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Π΅Π³Π° body. МоС исправлСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΠΎΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚Π΅Π³ΠΈ сцСнария ΠΈΠ· Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π² ниТнюю Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π°.

Π­Ρ‚ΠΎ ΠΌΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

// 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

@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 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

swrdfish picture swrdfish  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

formula349 picture formula349  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

olifante picture olifante  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

sospedra picture sospedra  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

knipferrc picture knipferrc  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ