Je développe actuellement mon projet en authentification ionique 3 et Firebase sur Firebase version 4.13.1. J'ai installé Angularfire2. J'ai créé un formulaire d'inscription et correctement enregistré les informations de l'utilisateur dans la base de données firebase lors du test de mon application avec ionic-lab. Cependant, le problème est survenu lorsque j'ai fermé et ré-ouvert mon projet, j'ai eu l'erreur suivante:
ERREUR dans ... nœud_modules/angularfire2/firebase.app.module.d.ts (10,22): La classe 'FirebaseApp' implémente de manière incorrecte la classe 'FirebaseApp'. Voulez-vous dire étendre 'FirebaseApp' et hériter de ses membres en tant que sous-classe? La propriété 'automaticDataCollectionEnabled' est manquante dans le type 'FirebaseApp'.
J'ai résolu l'erreur ci-dessus en ajoutant cette ligne automaticDataCollectionEnabled: boolean;
à cette classeexport declare class FirebaseApp implements _FirebaseApp { }
Maintenant, je ne peux pas exécuter mon application car elle me donne maintenant une nouvelle erreur:
Runtime ErrorZone Déjà chargé.
Empiler
Error: Zone already loaded.
at http://localhost:8100/build/vendor.js:117594:15
at http://localhost:8100/build/vendor.js:118206:3
at FUNCTION (http://localhost:8100/build/vendor.js:117571:10)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:117574:2)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:120624:30)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
at Object.defineProperty.value (http://localhost:8100/build/vendor.js:69092:66)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
at Object.<anonymous> (http://localhost:8100/build/vendor.js:117089:72)
at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
Je pensais que je pourrais charger le module deux fois et j'ai donc essayé de supprimer: <script src="build/vendor.js"></script>
de index.html et d'obtenir une nouvelle erreur d'exécution: webpack Jsonp n'est pas défini. alors j'ai remis le script.
Je suis coincé maintenant, toute aide est grandement appréciée.
Il suffit de faire
npm install @firebase/app@latest --save
et
npm install firebase angularfire2 --save
donc tout est à jour. Donc, vous aurez probablement cette erreur maintenant:
node_modules/angularfire2/firebase.app.module.d.ts (10,22): La classe 'FirebaseApp' implémente de manière incorrecte la classe 'FirebaseApp'. Voulez-vous dire étendre 'FirebaseApp' et hériter de ses membres en tant que sous-classe? La propriété 'automaticDataCollectionEnabled' est manquante dans le type 'FirebaseApp
pour résoudre ce problème, ajoutez la ligne "automaticDataCollectionEnabled: boolean;" au node_modules\angularfire2\firebase.app.module.d.ts
export declare class FirebaseApp implements FBApp {
name: string;
automaticDataCollectionEnabled: boolean; // add this line
options: {};
auth: () => FirebaseAuth;
database: () => FirebaseDatabase;
messaging: () => FirebaseMessaging;
storage: () => FirebaseStorage;
delete: () => Promise;
firestore: () => FirebaseFirestore;
}
Alors maintenant, il devrait être corrigé. Sinon vous devez essayer ma deuxième solution:
npm i -S @firebase/app
puis allez dans votre fichier package.json et mettez à jour les numéros de version de ces deux lignes dans vos dépendances comme suit:
"angularfire2": "5.0.0-rc.3",
"firebase": "4.6.0",
après la nouvelle installation:
npm install
et ensuite faire un service à nouveau et il devrait fonctionner à nouveau:
ionic serve
Je l'ai corrigé en installant la version 5.0.0-rc.4 au lieu de 5.0.0-rc.7 car tout après la version 5.0.0-rc.4 semble provoquer une "zone déjà chargée"
npm install [email protected]
C'est le problème de la nouvelle mise à jour de Firebase, voici une solution pour cette erreur
** Étape: 1 ** Installez la version inférieure de Firebase en utilisant cette commande
npm installer [email protected]
** Étape 2**
npm installer
Essayer.