2017-05-06 103 views
0

我曾試圖按照Angular2 setup steps爲信,但我有一點麻煩,在控制檯的錯誤:Angular2無提供AngularFireDatabase注射錯誤

錯誤錯誤:未捕獲的(在承諾):錯誤:沒有AngularFireDatabase的提供者!

登錄in.module.ts

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { SignInComponent } from './sign-in.component'; 
import { AngularFireModule } from 'angularfire2'; 
import { fireBaseEnvironment } from '../environment'; 
import { AngularFireDatabaseModule } from 'angularfire2/database'; 
import { AngularFireAuthModule } from 'angularfire2/auth'; 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    AngularFireModule.initializeApp(fireBaseEnvironment.firebase, 'my-app-name'), // imports firebase/app needed for everything 
    AngularFireDatabaseModule, // imports firebase/database, only needed for database features 
    AngularFireAuthModule, // imports firebase/auth, only needed for auth features 
    ], 
    declarations: [ SignInComponent ], 
    bootstrap: [ SignInComponent ] 
}) 
export class SignInModule {} 

登錄in.component.ts

import { 
    Component, 
    OnInit 
} from '@angular/core'; 
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database'; 

@Component({ 
    selector: 'sign-in', 
    template: ` 
    <p> Hi, this is the sign in bits jimmy</p> 
    <p>Click this to go to another place <a [routerLink]=" ['../detail'] " >Detail</a> 
    <ul> 
     <li class="text" *ngFor="let item of items | async"> 
     {{item.$value}} 
     </li> 
    </ul> 
    ` 
}) 

export class SignInComponent { 
    public jimmy: 'testing'; 
    public items: FirebaseListObservable<any[]>; 
    constructor(db: AngularFireDatabase) { 
    this.items = db.list('/items'); 
    } 
} 

任何想法可愛的人?

回答

-2

添加AngularFireDatabaseProviderproviders而不是作爲模塊initialize,因爲它是一個供應商:

imports: [ 
    ... , 
    AngularFireModule.initializeApp(fireBaseEnvironment.firebase, 'my-app-name'), 
    ... 
] 
provider: [ 
    AngularFireDatabaseProvider, 
    AngularFireAuthProvider 
] 
+0

的文件沒有提到在這種情況下供應商。你的代碼中也有語法錯誤,順便說一句。 –

+1

該文檔沒有提到,但我使用ionic2與angularfire2有同樣的錯誤,我解決了這個問題。 我不想放代碼,只是爲了瞭解錯誤是什麼。 – user7975062

+0

@ALL這已經被回答了[這裏](http://stackoverflow.com/questions/43772474/no-provider-for-angularfiredatabase/43844301#43844301) –

0
AngularFireModule.initializeApp(fireBaseEnvironment.firebase, 'my-app-name') 

變量「FireBaseEnvoriment」包含火力點的數據,它不需要

.firebase

,那麼將是這個樣子:

AngularFireModule.initializeApp(fireBaseEnvironment, 'my-app-name') 
0

因爲4.0版,你需要把數據基礎和權威性的所有模塊與配置你得到這個錯誤來自行看到8

 ` 
      import { AngularFireModule } from 'angularfire2'; 
      import { AngularFireDatabaseModule } from 
                'angularfire2/database'; 
      import { AngularFireAuthModule } from 'angularfire2/auth'; 
      @NgModule({ 
       imports: [ 
       BrowserModule, 
       BrowserAnimationsModule, 
       AppRoutingModule, 
       BsDropdownModule.forRoot(), 
       TabsModule.forRoot(), 
       ChartsModule, 
       AngularFireModule.initializeApp(environment.firebase), 
       AngularFireDatabaseModule, 
       AngularFireAuthModule 
       ], 
       declarations: [ 
       AppComponent, 
       FullLayoutComponent, 
       SimpleLayoutComponent, 
       ChatLayoutComponent, 
       NAV_DROPDOWN_DIRECTIVES, 
       BreadcrumbsComponent, 
       SIDEBAR_TOGGLE_DIRECTIVES, 
       AsideToggleDirective 
       ], 
       providers: [{ 
       provide: LocationStrategy, 
       useClass: HashLocationStrategy 
       }], 
       bootstrap: [AppComponent] 
      })` 
+0

如果我有2個firebase數據庫呢?這就是爲什麼我需要2個提供者。我無法在app.module.ts – user2243952

+0

中啓動2個配置文件。另請注意,此處我們不再提供具有initializeApp的自定義FirebaseApp名稱。 – Leo

相關問題