模块导入的意外值请添加@ngmodule注释

时间:2017-11-04 09:45:08

标签: android angular ionic3 file-transfer

我创建了一个离子应用程序,在这个应用程序中,我想将firebase与离子应用程序连接起来。但在配置firebase和离子应用程序后,我遇到了问题:

  

模块导入的意外值请添加@ngmodule注释

我已经在firebase上导入了数据库,现在我想要获取以及向该数据添加新数据

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

import { AngularFireModule } from 'angularfire2';
// import { AngularFireModule } from 'angularfire2/src/angularfire2';
import { AngularFireDatabase, AngularFireDatabaseModule,FirebaseListObservable } from 'angularfire2/database';

@NgModule({
  declarations: [
    MyApp,
    HomePage

  ],
  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp),
    AngularFireModule,
    AngularFireDatabase,
    // AngularFireDatabaseModule,
    FirebaseListObservable

  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}

home.ts

import { Component } from '@angular/core';
import { NavController, ModalController, Platform } from 'ionic-angular';
import { AngularFireDatabase, AngularFireDatabaseModule, FirebaseListObservable} from 'angularfire2/database';
import 'rxjs/add/operator/map';
import * as firebase from 'firebase';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  public movies    : FirebaseListObservable<any[]>;
  constructor(public navCtrl: NavController, private angFire: AngularFireDatabase, private modalCtrl : ModalController,private platform : Platform) {

  }
  ionViewDidLoad()
  {
     this.platform.ready()
     .then(() =>
     {
        this.movies = this.angFire.list('/films');
     });
  }
  addRecord()
  {
     let modal = this.modalCtrl.create('Modals');
     modal.present();
  }
  editMovie(movie)
  {
     let params = { movie: movie, isEdited: true },
         modal  = this.modalCtrl.create('Modals', params);

     modal.present();
  }
  deleteMovie(movie : any)
  {
     this.movies.remove(movie);
  }

}

1 个答案:

答案 0 :(得分:2)

AngularFireDatabase是提供者,而不是模块。您只需导入{strong> app.module.ts 中的AngularFireDatabaseModule而不是提供商 另请检查setup docs

export const firebase: {
    apiKey: '<your-key>',
    authDomain: '<your-project-authdomain>',
    databaseURL: '<your-database-URL>',
    projectId: '<your-project-id>',
    storageBucket: '<your-storage-bucket>',
    messagingSenderId: '<your-messaging-sender-id>'
  };


imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp),
    AngularFireModule.initializeApp(firebase),
    AngularFireDatabaseModule //this one
  ],

在app.module.ts中的providers数组中,

 providers: [
     AngularFireDatabase,
     //...
 ]