Next.js: ์ด๋ฆ„์ด '[DEFAULT]'์ธ Firebase ์•ฑ์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค(app/duplicate-app).

์— ๋งŒ๋“  2017๋…„ 05์›” 17์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vercel/next.js

https://github.com/zeit/next.js/tree/v3-beta/examples/with-firebase ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘˜ ์ด์ƒ์˜ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ Firebase๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

์ด Firebase ์‹œ์ž‘ ํŒŒ์ผ์—์„œ:

`'firebase'์—์„œ firebase ๊ฐ€์ ธ์˜ค๊ธฐ

const Firebase ๊ตฌ์„ฑ = {
API ํ‚ค: "fdsfsdfdsf",
authDomain: "fdsfdsfsdfdsf",
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL: "sdfdsfdsf",
ํ”„๋กœ์ ํŠธ ID: "dsfdsfdsf",
storageBucket: "dsfdsfdsf",
MessagingSenderId: "dsfdsfsdfdsf"
}

const FbApp = firebase.initializeApp(firebaseConfig)

๊ธฐ๋ณธ FbApp.auth() ๋‚ด๋ณด๋‚ด๊ธฐ`

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ:

import firebase from '../lib/firebaseClient'

๋‹จ์ผ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ import firebase from '../lib/firebaseClient' ๋กœ ์ƒˆ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Firebase: ์ด๋ฆ„์ด '[DEFAULT]'์ธ Firebase ์•ฑ์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค(app/duplicate-app).
FirebaseError: Firebase: '[DEFAULT]'๋ผ๋Š” Firebase ์•ฑ์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค(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({
๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคURL: 'dfgdfg'
})
} ์žก๊ธฐ(์˜ค๋ฅ˜) {
// "์ด๋ฏธ ์กด์žฌํ•จ" ๋ฉ”์‹œ์ง€๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
// ํ•ซ ๋ฆฌ๋กœ๋”ฉ ์ค‘์ผ ๋•Œ ์‹ค์ œ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹˜
if (!/์ด๋ฏธ ์กด์žฌ/.test(err.message)) {
console.error('Firebase ์ดˆ๊ธฐํ™” ์˜ค๋ฅ˜', err.stack)
}
}

const fb= ํŒŒ์ด์–ด๋ฒ ์ด์Šค
๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋ณธ fb`

์ด ๋ฌธ์ œ๋Š” Firebase์˜ initialize ๋ฉ”์†Œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ๋‘ ๋ฒˆ ์ด์ƒ ์ œํ•œํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์—์„œ Firebase ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ฑ๊ธ€ํ†ค ํด๋ž˜์Šค๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ €๋Š” Firebase๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ณ  ์ตœ๊ทผ ์›น ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋‚ด ๋ฌธ์ œ๋Š” ๋‚ด html ํŒŒ์ผ์˜ ํ—ค๋“œ์™€ ๋ณธ๋ฌธ ๋ชจ๋‘์—์„œ ๋‚ด javascript ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํŠนํžˆ html ํ—ค๋“œ์— firebase์™€ js ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  body ํƒœ๊ทธ ๋์— ๋˜ ๋‹ค๋ฅธ 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 ๋“ฑ๊ธ‰