web-dev-qa-db-fra.com

"Zone d'erreur d'exécution déjà chargée" dans ionic 3

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.

5
gmarimo

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
3
user9168386

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.

0
Rahul Jograna