Nessun fornitore per AngularFireDatabase, AngularFireAuth

Mi scuso perché non riesco a pensare a un modo migliore di includere tutte le informazioni … Quando eseguo questo, ottengo un errore che dice quanto segue. Ho seguito i documenti ionici alla T, non riesco a capire cosa potrebbe essere sbagliato.

Errore:

Nessun fornitore per AngularFireDatabase!

Errore

Package.json Pacchetto

App.module.ts App.Module

home.html Home HTML

Home.ts Home TS

AngularDatabase (lo stesso per AngularAuth ) è separato dal suo modulo AngularFireDatabaseModule ( AngularFireAuthModule per AngularAuth ) dalla versione [email protected] , vedere la documentazione qui .

dovresti importare AngularFireDatabaseModule ( AngularFireAuthModule per l’autenticazione ) nel tuo RootModule .

 import { AngularFireModule } from 'angularfire2'; // for AngularFireDatabase import { AngularFireDatabaseModule } from 'angularfire2/database'; import { AngularFireDatabase, FirebaseObjectObservable } from 'angularfire2/database'; // for AngularFireAuth import { AngularFireAuthModule } from 'angularfire2/auth'; import { AngularFireAuth } from 'angularfire2/auth'; @NgModule({ imports: [ AngularFireModule.initializeApp({ <---- main module apiKey: ..., authDomain: '...', databaseURL: '...', storageBucket: '...', messagingSenderId: '...' }), AngularFireDatabaseModule, <---- for database AngularFireAuthModule <---- for auth ] }) 

All’interno di app.module.ts aggiungere qui sotto:

 import { AngularFireModule } from 'angularfire2'; import { AngularFireDatabaseModule } from 'angularfire2/database'; 

Quindi importare come di seguito:

 @NgModule({ declarations: [ MyApp, HomePage ], imports: [ BrowserModule, IonicModule.forRoot(MyApp), AngularFireModule.initializeApp(firebaseConfig), AngularFireDatabaseModule ], 

All’interno di home.ts utilizzare come di seguito:

 import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database'; items: FirebaseListObservable; constructor(public navCtrl: NavController, db: AngularFireDatabase) { this.items = db.list('/items'); } 

Le mie informazioni ioniche:

 Ionic Framework: 3.1.1 Ionic App Scripts: 1.3.7 Angular Core: 4.0.2 Angular Compiler CLI: 4.0.2 Node: 6.10.1 OS Platform: macOS Sierra 

Assicurati che FireBaseDatabaseModule sia importato da angularfire2 / database deprecato se utilizzi FireBaseDatabase da angularfire2 / database-deprecato

e viceversa. L’unico problema è la mancata corrispondenza delle istruzioni di importazione perché devono appartenere allo stesso pacchetto

angularfire2 / database o angularfire2 / database deprecati

se provassi ad importare il database dal primo e dal modulo dal secondo pacchetto o viceversa. Non lo riconoscerà come DatabaseModule o Database.

———— MODULO ROOT ————-

  import { AngularFireDatabaseModule } from "angularfire2/database-deprecated" imports: [ BrowserModule, RouterModule.forRoot(appRoutes), FormsModule, AngularFireModule, AngularFireDatabaseModule, AngularFireAuthModule, AngularFireModule.initializeApp(environment.firebase) ] 

——- CLASSE DI SERVIZIO ————

 import { AngularFireDatabase, FirebaseListObservable } from "angularfire2/database-deprecated"; 

Aggiungilo nell’array dei provider in app.module.ts –

  imports: [ BrowserModule, FormsModule, HttpModule, RouterModule.forRoot(appRoutes), AngularFireModule.initializeApp(firebaseConfig) ], providers: [AuthService,**AngularFireAuth, AngularFireDatabase**, AuthGuard, InventoryService] 

Ho avuto questo errore nella mia applicazione Angolare. Risulta che la mia importazione automatica ha importato AngularFirebase da ‘ angularfire2/database-deprecated ‘. La cancellazione di -deprecated risolto il mio problema. Potresti voler controllare anche le tue importazioni.