Next.js: '[DEFAULT]' рдирд╛рдо рдХрд╛ рдлрд╛рдпрд░рдмреЗрд╕ рдРрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ (рдРрдк/рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рдРрдк)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдордИ 2017  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

рдореИрдВрдиреЗ https://github.com/zeit/next.js/tree/v3-beta/examples/with-firebase рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛

рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдШрдЯрдХреЛрдВ рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рддреНрд░реБрдЯрд┐ рд╣реИред

рдЗрд╕ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реНрдЯрд╛рд░реНрдЯ рдлрд╛рдЗрд▓ рдореЗрдВ:

'рдлрд╛рдпрд░рдмреЗрд╕' рд╕реЗ рдлрд╛рдпрд░рдмреЗрд╕ рдЖрдпрд╛рдд рдХрд░реЗрдВ

рдХреЙрдиреНрд╕реНрдЯ рдлрд╛рдпрд░рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧ = {
apiKey: "fdsfsdfdsf",
рдСрдердбреЛрдореЗрди: "fdsfdsfsdfdsf",
рдбреЗрдЯрд╛рдмреЗрд╕URL: "sdfdsfdsf",
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА: "dsfdsfdsf",
рд╕реНрдЯреЛрд░реЗрдЬрдмрдХреЗрдЯ: "dsfdsfdsf",
рдореИрд╕реЗрдЬрд┐рдВрдЧрд╕реЗрдВрдбрд░ рдЖрдИрдбреА: "dsfdsfsdfdsf"
}

const FbApp = firebase.initializeApp (firebaseConfig)

рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ FbApp.auth()`

рдлрд┐рд░ рдШрдЯрдХреЛрдВ рдореЗрдВ:

import firebase from '../lib/firebaseClient'

рдПрдХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ import firebase from '../lib/firebaseClient' рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

рдлрд╛рдпрд░рдмреЗрд╕: '[рдбрд┐рдлреЙрд▓реНрдЯ]' рдирд╛рдо рдХрд╛ рдлрд╛рдпрд░рдмреЗрд╕ рдРрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ (рдРрдк/рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рдРрдк)ред
FirebaseError: Firebase: '[DEFAULT]' рдирд╛рдо рдХрд╛ Firebase рдРрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ (рдРрдк/рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рдРрдк)ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП 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.initializeApp({
рдбреЗрдЯрд╛рдмреЗрд╕рдпреВрдЖрд░рдПрд▓: 'рдбреАрдПрдлрдЬреАрдбреАрдПрдлрдЬреА'
})
} рдкрдХрдбрд╝реЛ (рдЧрд▓рддреА) {
// рд╣рдо "рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж" рд╕рдВрджреЗрд╢ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рд╣реИ
// рдЬрдм рд╣рдо рд╣реЙрдЯ-рд░реАрд▓реЛрдбрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ
рдЕрдЧрд░ (!/рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ/.рдкрд░реАрдХреНрд╖рдг(рдЧрд▓рддреА рд╕рдВрджреЗрд╢)) {
рдХрдВрд╕реЛрд▓.рдПрд░рд░ ('рдлрд╛рдпрд░рдмреЗрд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдПрд░рд░', рдЗрд░реЗрдЯ.рд╕реНрдЯреИрдХ)
}
}

рдХреЙрдиреНрд╕реНрдЯ рдПрдлрдмреА = рдлрд╛рдпрд░рдмреЗрд╕
рдирд┐рд░реНрдпрд╛рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ fb`

рд╕рдорд╕реНрдпрд╛ рдХрдИ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ firebase рдХреА рдЖрд░рдВрднрд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛ред рдФрд░ рдореИрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдореЗрдердб рдХреЙрд▓ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреНрд▓рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдПрдВред

рдореИрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдБред рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рдерд╛ред рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдореЗрд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЗрд░реА рдПрдЪрдЯреАрдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд┐рд░ рдФрд░ рд╢рд░реАрд░ рджреЛрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ рдереАред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдЪрдЯреАрдПрдордПрд▓ рд╣реЗрдб рдореЗрдВ рдлрд╛рдпрд░рдмреЗрд╕ рдФрд░ рдЬреЗрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рджреЛрдиреЛрдВ рдереЗ рдФрд░ рдмреЙрдбреА рдЯреИрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдФрд░ рдЬреЗрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдерд╛ред рдореЗрд░рд╛ рдлрд┐рдХреНрд╕ рд╕рд┐рд░ рд╕реЗ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢рд░реАрд░ рдХреЗ рдиреАрдЪреЗ рд░рдЦрдирд╛ рдерд╛ред

рд╡рд╣ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ:

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

рд╢рд╛рдирджрд╛рд░ рд╕рдорд╛рдзрд╛рди! @рдкреБрд░реА

@рдкреБрд░реА рдЖрдкрдиреЗ рдЕрднреА-рдЕрднреА рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдпрд╛

рдпрджрд┐ рдЖрдк рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

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

@рдЬреАрдж рдзрдиреНрдпрд╡рд╛рдж

рдореБрдЭреЗ 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();

@рдкреБрд░реА рдФрд░ @jide , рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕