Π― Π½Π°ΡΠ°Π» ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ 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({});
}
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
`ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ 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 , ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ
firebase.apps
ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, Π·Π°Π³ΡΡΠΆΠ΅Π½ Π»ΠΈ ΠΎΠ½. ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.http://stackoverflow.com/questions/37652328/how-to-check-if-a-firebase-app-is-already-initialized-on-android