没有AngularFireDatabase的提供者,AngularFireAuth

时间:2017-05-04 01:36:56

标签: angular typescript firebase ionic2 angularfire2

道歉,因为我无法想到包含所有信息的更好方法......当我运行此操作时,我收到错误说明以下内容。我跟着Ionic Docs到了T,我无法弄清楚可能出现的问题。

错误:

  

没有AngularFireDatabase的提供者!

Error

的package.json Package

App.module.ts App.Module

Home.html中 Home HTML

Home.ts Home TS

5 个答案:

答案 0 :(得分:60)

AngularDatabase与AngularAuth 相同)被分隔为自己的模块AngularFireDatabaseModule AngularAuth的AngularFireAuthModule )  版本 angularFire2@4.0.0 ,请参阅文档here

您应在AngularFireDatabaseModule中导入RootModule AngularFireAuthModule for Authentication )。

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
  ]
})

答案 1 :(得分:6)

如果您使用angularfire2 / database-deprecated中的FireBaseDatabase,请确保从angularfire2 / database-deprecated导入FireBaseDatabaseModule

反之亦然。唯一的问题是import语句不匹配,因为它们需要属于同一个包

angularfire2 /数据库或 angularfire2 /数据库弃用

如果您尝试从第一个导入数据库而从第二个包导入模块,反之亦然。它不会将其识别为DatabaseModule或数据库。

------------ ROOT MODULE -------------

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

------- SERVICE CLASS ------------

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

答案 2 :(得分:5)

将它添加到app.module.ts中的providers数组中 -

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

答案 3 :(得分:1)

使用Firebase的更新版本将在 app.module.ts

import { AngularFireModule } from '@angular/fire';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFireDatabaseModule } from '@angular/fire/database';



imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule,
AngularFireAuthModule,
AngularFireDatabaseModule,
....
]

答案 4 :(得分:0)

我的Angular应用程序中出现此错误。事实证明,我从“AngularFirebase”自动导入导入的angularfire2/database-deprecated。清除-deprecated解决了我的问题。您可能也想检查您的导入。