道歉,因为我无法想到包含所有信息的更好方法......当我运行此操作时,我收到错误说明以下内容。我跟着Ionic Docs到了T,我无法弄清楚可能出现的问题。
错误:
没有AngularFireDatabase的提供者!
的package.json
App.module.ts
Home.html中
Home.ts
答案 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
解决了我的问题。您可能也想检查您的导入。