Uczę się Angulara szukając pomocy w naprawieniu błędu: podążam za tym linkiem: https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md aby stworzyć kątowy mały app z angular2 i angularfirestore2
ale kiedy trafiam na serwis, pojawia się poniższy błąd w konsoli przeglądarki.
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)
Próbowałem googlować, ale nie znalazłem dokładnego rozwiązania, nic mi nie pomogło :(,
Oto, co śledziłem: 1) Zainstalowany węzeł w wersji 8.9.1 2) npm install -g @ angular / cli -> Wersja 1.5.2 3) ng new 'project-name' 4) npm install angularfire2 firebase --save
Oto mój plik app.module.ts:
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.component.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) {}
}
environmentemnt.ts:
export const environment = {
production: false,
firebase: {
apiKey: 'xxxxx',
authDomain: 'aaaaaaa',
databaseURL: 'bbbbbbbbbbbbbbbbbb',
projectId: 'aaaaaaaaaaaaaa',
storageBucket: 'aaaaaaaaaaaa',
messagingSenderId: 'aaaaaaaaaaaaa'
}
};
następnie ng służyć i otrzymuję powyższy błąd ...
angular
firebase
google-cloud-firestore
angularfire2
Deweloper
źródło
źródło
Odpowiedzi:
Należy dodać
providers: [AngularFirestore]
wapp.module.ts
.źródło
import
jechaćAngularFirestoreModule
, jak mówi dokumentacja, która prawdopodobnie załatwia wszystko, w tym deklaracjęAngularFirestore
jako dostawca.CTRL+C
ionic serve
Miałem ten sam problem i poniżej został rozwiązany.
Stary kod serwisowy:
Zaktualizowany działający kod usługi:
źródło
providedIn
argument jest dostępny tylko w Angular 6 i nowszych .Otwórz:
./src/app/app.module.ts
i zaimportuj moduły Firebase u góry:
I BARDZO WAŻNE:
pamiętaj, aby zaktualizować „import” w NgModule:
Spróbuj, teraz będzie działać.
Szczegółowe informacje można znaleźć w dokumentacji angularfire2 :
https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md
Powodzenia!
źródło
Dziwne było dla mnie to, że miałem dostawcę: [], ale tag HTML, który używa dostawcy, był przyczyną błędu. Mam na myśli czerwone pole poniżej:
Okazuje się, że miałem dwie klasy w różnych komponentach z tą samą nazwą pliku „Employer-list.component.ts”, więc projekt skompilował się dobrze, ale wszystkie odniesienia były pomieszane.
źródło
Dodanie
AngularFirestoreModule.enablePersistence()
sekcji importu rozwiązało mój problem:źródło
Rozwiązałem ten problem, usuwając firestore z:
w moim pliku component.ts. tylko do użytku:
może to być również twój problem.
źródło
Dla AngularFire2 najnowszej wersji
Zainstaluj AngularFire2
Następnie zaktualizuj plik app.module.ts
Sprawdź samouczek dotyczący obsługi FireStore CRUD tutaj
źródło
Zmień import z:
Do tego :
To rozwiązuje mój problem.
źródło
Zabieram to do mojego modułu app.module. Po imporcie powinno działać
Moja wersja:
źródło
w
app.module.ts
i ustawić go jako dostawcy jak usługiźródło
Miałem ten sam problem podczas dodawania Firebase do mojej aplikacji Ionic . Aby rozwiązać problem, wykonałem następujące kroki:
W mojej aplikacji / app.module.ts :
Wcześniej używaliśmy FirestoreSettingsToken zamiast SETTINGS. Ale ten błąd został rozwiązany, teraz używamy SETTINGS. ( link )
W mojej aplikacji / usługach / myService.ts zaimportowałem jako:
Z jakiegoś powodu vscode importował go jako "@ angular / fire / firestore / firestore"; I Po zmianie na "@ angular / fire / firestore"; problem został rozwiązany!
źródło