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({});
}
ํด๊ฒฐ์ฑ :
`'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 , ์๋ฃจ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
firebase.apps
๋ฅผ ํ์ธํ์ฌ ๋ก๋๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ํ ๋ฒ๋ง ๋ก๋ํ๋ ๊ฒฝ์ฐ ๊ธธ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ ์์ผ๋ฉด ๊ฐ ์ฑ ์ด๋ฆ์ ํ์ธํ ์ ์์ต๋๋ค.http://stackoverflow.com/questions/37652328/how-to-check-if-a-firebase-app-is-already-initialized-on-android