web-dev-qa-db-fra.com

Aucun fournisseur pour AngularFireDatabase, AngularFireAuth

Toutes mes excuses car je ne peux pas penser à un meilleur moyen d’inclure toutes les informations… Lorsque j’exécute cette procédure, j’obtiens une erreur en disant ce qui suit. J'ai suivi les documents ioniques au T, je ne peux pas comprendre ce qui pourrait éventuellement être faux.

Erreur:

Aucun fournisseur pour AngularFireDatabase!

Error

Package.json Package

App.module.ts App.Module

Accueil.html Home HTML

Home.ts Home TS

23
Slabach

AngularDatabase (identique pour AngularAuth) est séparé en son propre module AngularFireDatabaseModule (AngularFireAuthModule pour AngularAuth) de. version [email protected], voir documentation ici.

vous devez importer AngularFireDatabaseModule (AngularFireAuthModule for Authentication) dans votre 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
  ]
})
58
Pengyy

À l'intérieur de app.module.ts add ci-dessous:

import { AngularFireModule } from 'angularfire2';

import { AngularFireDatabaseModule } from 'angularfire2/database';

Puis importer comme ci-dessous:

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

Inside home.ts utiliser comme ci-dessous:

import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';

items: FirebaseListObservable<any[]>;

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

Mon info ionique:

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
13
Sunil Kumar

Assurez-vous que FireBaseDatabaseModule est importé de angularfire2/database-obsolète si vous utilisez FireBaseDatabase de angularfire2/database-obsolète.

et vice versa. Le seul problème est le manque de concordance des instructions d'importation, car elles doivent appartenir au même package 

angularfire2/database ou angularfire2/database-obsolète

si vous essayez d'importer la base de données à partir du premier et le module à partir du second package ou vice-versa. Il ne le reconnaîtra pas en tant que DatabaseModule ou Database.

------------ MODULE RACINE -------------

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

------- CLASSE DE SERVICE ------------

import { AngularFireDatabase, FirebaseListObservable } from "angularfire2/database-deprecated";
6
Amrit Pal Singh

Ajoutez-le dans le tableau des fournisseurs dans app.module.ts -

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

J'ai eu cette erreur dans mon application angulaire. Il se trouve que mon importation automatique a importé AngularFirebase de 'angularfire2/database-deprecated'. Effacer le -deprecated a résolu mon problème. Vous voudrez peut-être aussi vérifier vos importations.

0
Alf Moh