Lorsque j'essaie d'initialiser Firebase Cloud Firestore, j'ai rencontré l'erreur suivante:
Uncaught TypeError: WEBPACK_IMPORTED_MODULE_0_firebase . Firestore n'est pas une fonction
J'ai installé firebase avec npm install firebase --save
précédemment.
import * as firebase from 'firebase';
import router from '../router';
const config = {
apiKey: "a",
authDomain: "a",
databaseURL: "a",
projectId: "a",
storageBucket: "a",
messagingSenderId: "a"
};
if(!firebase.apps.length){
firebase.initializeApp(config);
let firestore = firebase.firestore();
}
Je l'ai corrigé en important plusieurs bibliothèques: firebase
et firebase/firestore
. En effet, la bibliothèque principale firebase
n'inclut pas naturellement la bibliothèque Firestore. Donc le code complet pour le réparer est:
import * as firebase from 'firebase';
import 'firebase/firestore';
Tout d’abord, assurez-vous d’avoir la dernière version de firebase:
npm install [email protected] --save
Ensuite, ajoutez à la fois firebase et firestore:
const firebase = require("firebase");
// Required for side-effects
require("firebase/firestore");
Initialisez l'application Firebase:
firebase.initializeApp({
apiKey: '### FIREBASE API KEY ###',
authDomain: '### FIREBASE AUTH DOMAIN ###',
projectId: '### CLOUD FIRESTORE PROJECT ID ###'
});
// Initialize Cloud Firestore through Firebase
var db = firebase.firestore();
source: https://firebase.google.com/docs/firestore/quickstart?authuser=0
Si, par hasard, votre code est sous sorcellerie et que import firebase/firestore
ne fonctionne pas, alors incluez-le directement:
import '@firebase/firestore/dist/esm/index';
Si ce n'est pas là, alors:
npm install @firebase/firestore
Je pense que je l'ai compris pour ceux qui utilisent electron-webpack. La solution provenait d’un poste lié à l’importation de codemirror. https://github.com/electron-userland/electron-webpack/issues/81
Cela a fonctionné pour moi.
// package.json
{
//...
"electronWebpack": {
"whiteListedModules": [
"firebase"
]
},
//...
}
import { firebase } from '@firebase/app';
import '@firebase/firestore'
Si vous utilisez aussi bien
import 'firebase/auth';
J'ai eu la même erreur et j'ai essayé de suivre le site officiel mais je n'ai pas fonctionné ..__ Ensuite, j'ai fait une erreur dans Google et j'ai atterri dans cet article.
J'ai essayé:
import * as firebase from 'firebase';
import 'firebase/firestore';
Cependant, cela n'a pas fonctionné pour moi, mais j'ai ajouté /firebase
à la première ligne import * as firebase from 'firebase/firebase';
et tout fonctionne parfaitement.
Cela fonctionne aussi avec require
:
const firebase = require("firebase/firebase");
// Required for side-effects
require("firebase/firestore");