180 votes

NullInjectorError: Pas de fournisseur pour AngularFirestore

Je suis en train d'apprendre Angulaire à la recherche pour aider à corriger l'erreur: Je suis en suivant ce lien : https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md pour créer un angulaires petite application avec angular2 et angularfirestore2

mais quand j'ai frappé ng servir, j'obtiens l'erreur ci-dessous dans le navigateur de la console..

StaticInjectorError[AngularFirestore]: 
  StaticInjectorError[AngularFirestore]: 
    NullInjectorError: No provider for AngularFirestore!
    at _NullInjector.get (core.js:923)
    at resolveToken (core.js:1211)
    at tryResolveToken (core.js:1153)
    at StaticInjector.get (core.js:1024)
    at resolveToken (core.js:1211)
    at tryResolveToken (core.js:1153)
    at StaticInjector.get (core.js:1024)
    at resolveNgModuleDep (core.js:10585)
    at NgModuleRef_.get (core.js:11806)
    at resolveDep (core.js:12302)

J'ai essayé de googler, mais n'en est pas de trouver la solution exacte rien n'a fonctionné pour moi :(,

Voici ce que j'ai suivi: 1) Noeud Installé La Version 8.9.1 2) npm install-g @angulaire/cli --> la Version 1.5.2 3) ng nouveau "projet-nom" 4) npm install angularfire2 firebase-enregistrer

Voici l'une de mes applications.le module.ts fichier:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { environment } from '../environments/environment';




@NgModule({
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase)
  ],
  declarations: [ AppComponent ],
  bootstrap: [ AppComponent ]
})
export class AppModule {}

app.composante.ts:

import { Component } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';

  constructor(db: AngularFirestore) {

  }
}

environemnt.ts:

export const environment = {
  production: false,
  firebase: {
    apiKey: 'xxxxx',
    authDomain: 'aaaaaaa',
    databaseURL: 'bbbbbbbbbbbbbbbbbb',
    projectId: 'aaaaaaaaaaaaaa',
    storageBucket: 'aaaaaaaaaaaa',
    messagingSenderId: 'aaaaaaaaaaaaa'
  }
};

puis ng servir, et j'obtiens l'erreur ci-dessus...

316voto

Sajeetharan Points 108195

Vous devriez ajouter providers: [AngularFirestore] en app.module.ts .

 @NgModule({
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase)
  ],
  declarations: [ AppComponent ],
  providers: [AngularFirestore],
  bootstrap: [ AppComponent ]
})
export class AppModule {}
 

58voto

sunleo Points 2430

J'ai eu le même problème et ci-dessous est résolu.

Ancien code de service:

 @Injectable()
 

Code de service de travail mis à jour:

 @Injectable({
  providedIn: 'root'
})
 

11voto

Ouvert: ./src/app/app.module.ts
Et l'importation de Firebase Modules en haut:

importer { environnement } à partir de '../environnement/environnement";
importer { AngularFireModule } à partir de 'angularfire2';
importer { AngularFirestoreModule } à partir de 'angularfire2/firestore';

Et TRÈS IMPORTANT:
N'oubliez pas de mettre à jour les "importations" dans NgModule:

@NgModule({
  declarations: [
    AppComponent,
    OtherComponent // Add other components here
    ...
  ],
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase, 'your-APP-name-here'),
    AngularFirestoreModule
  ],
  ...
})

Essayez-le, il doit maintenant travailler.
Pour plus d'informations, suivre les angularfire2 de la documentation:
https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md
Bonne chance!

4voto

Gene Points 398

Chose étrange pour moi a été le fournisseur de:[], mais la balise HTML qui utilise le fournisseur de ce qu'a été la cause de l'erreur. Je fais référence à la boîte rouge ci-dessous: enter image description here

Il s'avère que j'avais deux classes de composants différents avec le même "employé-liste.composante.ts" nom de fichier et donc le projet compilé amende, mais les références sont toutes foiré.

2voto

Ravichandran J Points 21

L'ajout de AngularFirestoreModule.enablePersistence() dans la section d'importation a résolu mon problème:

 imports: [
    BrowserModule, AngularFireModule, 
    AngularFireModule.initializeApp(config),
    AngularFirestoreModule.enablePersistence()
]
 

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