100 votes

Firebase.firestore() n'est pas une fonction lors de la tentative d'initialisation de Cloud Firestore

Lorsque j'essaie d'initialiser Firebase Cloud Firestore, je rencontre 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();
}

0 votes

Pourquoi avez-vous enregistré la dépendance firebase en tant que dépendance dev ?

0 votes

Aussi, vous devez vous assurer d'avoir la version 4.5.0 qui est assez récente. Vérifiez votre package.json et assurez-vous d'avoir la bonne version définie

0 votes

J'ai désinstallé Firebase et installé la nouvelle version avec npm install --save firebase@4.5.0 mais cela n'a rien changé :/ @Phil

155voto

Eyk Rehbein Points 932

J'ai corrigé en important plusieurs bibliothèques : firebase et firebase/firestore. C'est parce que la bibliothèque de base firebase n'inclut pas la bibliothèque firestore.

import firebase from 'firebase/app';
import 'firebase/firestore';

1 votes

Les sauts de ligne sur Android posent problème si vous utilisez React Native. Semble fonctionner correctement sur iOS :-/

2 votes

Cela fonctionne parfaitement à partir de février 2019. Merci!! :)

2 votes

Merci! La deuxième instruction d'importation était ce qui me manquait.

19voto

Tout d'abord, assurez-vous d'avoir la dernière version de firebase :

npm install firebase@4.12.0 --save

Ensuite, ajoutez à la fois firebase et firestore :

const firebase = require("firebase");
// Requis pour les side-effects
require("firebase/firestore");

Initialisez l'application firebase :

firebase.initializeApp({
  apiKey: '### FIREBASE API KEY ###',
  authDomain: '### FIREBASE AUTH DOMAIN ###',
  projectId: '### CLOUD FIRESTORE PROJECT ID ###'
});

// Initialisez Cloud Firestore via Firebase
var db = firebase.firestore();

source : https://firebase.google.com/docs/firestore/quickstart?authuser=0

15voto

Tim Arney Points 968
import { firebase } from '@firebase/app';
import '@firebase/firestore'

Si vous utilisez également l'authentification

import '@firebase/auth';

0 votes

Pour moi, je n'ai pas besoin d'ajouter cette ligne d'importation mais l'authentification fonctionnait bien. Pourquoi est-ce seulement pour Firestore ?

4voto

Jose A Points 978

Si par hasard, votre code est ensorcelé, et import firebase/firestore ne fonctionne pas, incluez-le directement :

import '@firebase/firestore/dist/esm/index';

Si ce n'est pas le cas, alors :

npm install @firebase/firestore

0 votes

A fonctionné pour moi quand j'ai ajouté: - npm install @firebase/firestore

2voto

Yousaf Azabi Points 36

J'avais la même erreur et j'ai essayé de suivre le site officiel mais ça n'a pas marché. Ensuite, j'ai googlé l'erreur et je suis tombé sur ce post.

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 également avec require:

const firebase = require("firebase/firebase");
// Requis pour les effets secondaires
require("firebase/firestore");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X