没有 AngularFireDatabase、AngularFireAuth 的提供者
No provider for AngularFireDatabase, AngularFireAuth
抱歉,我想不出更好的方法来包含所有信息...当我 运行 这样做时,我收到一条错误消息,内容如下。我已经按照 Ionic Docs 到 T,我无法弄清楚可能有什么问题。
错误:
No provider for AngularFireDatabase!
Package.json
App.module.ts
Home.html
Home.ts
AngularDatabase
(与 AngularAuth 相同) 分离到它自己的模块 AngularFireDatabaseModule
(AngularAuth 的 AngularFireAuthModule ) 从
版本 angularFire2@4.0.0,参见 文档 here.
您应该在 RootModule
.
中导入 AngularFireDatabaseModule
(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
]
})
在app.module.ts里面添加:
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
然后导入如下:
@NgModule({
declarations: [
MyApp,
HomePage
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
AngularFireModule.initializeApp(firebaseConfig),
AngularFireDatabaseModule
],
里面home.ts使用如下:
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
items: FirebaseListObservable<any[]>;
constructor(public navCtrl: NavController, db: AngularFireDatabase) {
this.items = db.list('/items');
}
我的 Ionic 信息:
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
将其添加到 app.module.ts 中的 providers 数组中 -
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes),
AngularFireModule.initializeApp(firebaseConfig)
],
providers: [AuthService,**AngularFireAuth, AngularFireDatabase**, AuthGuard, InventoryService]
我的 Angular 申请中出现了这个错误。结果是我的自动导入从“angularfire2/database-deprecated
”导入了 AngularFirebase
。清除 -deprecated
解决了我的问题。您可能还想检查您的导入。
如果您使用来自 angularfire2/database-deprecated
的 FireBaseDatabase,请确保从 angularfire2/database-deprecated 导入 FireBaseDatabaseModule
反之亦然。唯一的问题是导入语句不匹配,因为它们需要属于同一个包
angularfire2/database 或
angularfire2/database-deprecated
如果您尝试从第一个包导入数据库并从第二个包导入模块,反之亦然。它不会将其识别为数据库模块或数据库。
------------根模块------------
import { AngularFireDatabaseModule } from "angularfire2/database-deprecated"
imports: [
BrowserModule,
RouterModule.forRoot(appRoutes),
FormsModule,
AngularFireModule,
AngularFireDatabaseModule,
AngularFireAuthModule,
AngularFireModule.initializeApp(environment.firebase)
]
--------服务CLASS------------
import { AngularFireDatabase, FirebaseListObservable } from "angularfire2/database-deprecated";
使用 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,
....
]
抱歉,我想不出更好的方法来包含所有信息...当我 运行 这样做时,我收到一条错误消息,内容如下。我已经按照 Ionic Docs 到 T,我无法弄清楚可能有什么问题。
错误:
No provider for AngularFireDatabase!
Package.json
App.module.ts
Home.html
Home.ts
AngularDatabase
(与 AngularAuth 相同) 分离到它自己的模块 AngularFireDatabaseModule
(AngularAuth 的 AngularFireAuthModule ) 从
版本 angularFire2@4.0.0,参见 文档 here.
您应该在 RootModule
.
AngularFireDatabaseModule
(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
]
})
在app.module.ts里面添加:
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
然后导入如下:
@NgModule({
declarations: [
MyApp,
HomePage
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
AngularFireModule.initializeApp(firebaseConfig),
AngularFireDatabaseModule
],
里面home.ts使用如下:
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
items: FirebaseListObservable<any[]>;
constructor(public navCtrl: NavController, db: AngularFireDatabase) {
this.items = db.list('/items');
}
我的 Ionic 信息:
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
将其添加到 app.module.ts 中的 providers 数组中 -
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes),
AngularFireModule.initializeApp(firebaseConfig)
],
providers: [AuthService,**AngularFireAuth, AngularFireDatabase**, AuthGuard, InventoryService]
我的 Angular 申请中出现了这个错误。结果是我的自动导入从“angularfire2/database-deprecated
”导入了 AngularFirebase
。清除 -deprecated
解决了我的问题。您可能还想检查您的导入。
如果您使用来自 angularfire2/database-deprecated
的 FireBaseDatabase,请确保从 angularfire2/database-deprecated 导入 FireBaseDatabaseModule反之亦然。唯一的问题是导入语句不匹配,因为它们需要属于同一个包
angularfire2/database 或 angularfire2/database-deprecated
如果您尝试从第一个包导入数据库并从第二个包导入模块,反之亦然。它不会将其识别为数据库模块或数据库。
------------根模块------------
import { AngularFireDatabaseModule } from "angularfire2/database-deprecated"
imports: [
BrowserModule,
RouterModule.forRoot(appRoutes),
FormsModule,
AngularFireModule,
AngularFireDatabaseModule,
AngularFireAuthModule,
AngularFireModule.initializeApp(environment.firebase)
]
--------服务CLASS------------
import { AngularFireDatabase, FirebaseListObservable } from "angularfire2/database-deprecated";
使用 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,
....
]