道歉,因爲我想不出包含所有信息的更好的方式......當我運行這個時,我得到一個錯誤說以下內容。我跟着Ionic Docs去了T,我找不出什麼可能是錯的。沒有AngularFireDatabase,AngularFireAuth的供應商
錯誤:
No provider for AngularFireDatabase!
的package.json
App.module.ts
Home.html中
個Home.ts
道歉,因爲我想不出包含所有信息的更好的方式......當我運行這個時,我得到一個錯誤說以下內容。我跟着Ionic Docs去了T,我找不出什麼可能是錯的。沒有AngularFireDatabase,AngularFireAuth的供應商
錯誤:
No provider for AngularFireDatabase!
的package.json
App.module.ts
Home.html中
個Home.ts
AngularDatabase
(相同爲AngularAuth)被分離到其自身的模塊AngularFireDatabaseModule
(AngularFireAuthModule爲AngularAuth)從 版本[email protected],見文檔here 。
您應該在RootModule
中輸入AngularFireDatabaseModule
(AngularFireAuthModule用於驗證)。
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 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 -
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes),
AngularFireModule.initializeApp(firebaseConfig)
],
providers: [AuthService,**AngularFireAuth, AngularFireDatabase**, AuthGuard, InventoryService]
我在角應用了這個錯誤。原來我的自動導入從'angularfire2/database-deprecated
'導入AngularFirebase
。清除-deprecated
解決了我的問題。你可能也想檢查你的進口。
make如果你使用的FireBaseDatabase確保FireBaseDatabaseModule從angularfire2 /數據庫棄用的進口從angularfire2 /數據庫棄用
,反之亦然。唯一的問題是import語句的不匹配,因爲他們必須屬於同一個包或者
angularfire2 /數據庫或 angularfire2 /數據庫棄用
,如果你會嘗試從第一和導入數據庫來自第二個包的模塊,反之亦然。它不會將其識別爲DatabaseModule或數據庫。
------------根模塊-------------
import { AngularFireDatabaseModule } from "angularfire2/database-deprecated"
imports: [
BrowserModule,
RouterModule.forRoot(appRoutes),
FormsModule,
AngularFireModule,
AngularFireDatabaseModule,
AngularFireAuthModule,
AngularFireModule.initializeApp(environment.firebase)
]
-------服務類--- ---------
import { AngularFireDatabase, FirebaseListObservable } from "angularfire2/database-deprecated";
請不要共享文字圖片。相反,分享文本並使用Stack Overflow/Markdown的格式化選項進行格式化(cmd/ctrl K是你的朋友)。 –