Подтвердить что ты не робот

Нет провайдера для AngularFireDatabase, AngularFireAuth

Извиняюсь, потому что я не могу придумать лучший способ включить всю информацию... Когда я запускаю это, я получаю сообщение об ошибке следующего содержания. Я следовал за Ionic Docs до T, я не могу понять, что может быть неправильным.

Ошибка:

Нет провайдера для AngularFireDatabase!

Error

Package.json Package

App.module.ts App.Module

home.html Home HTML

Home.ts Home TS

4b9b3361

Ответ 1

AngularDatabase (то же самое для AngularAuth) разделяется на собственный модуль AngularFireDatabaseModule (AngularFireAuthModule for AngularAuth) из  версия [email protected], см. документация здесь.

вам нужно импортировать AngularFireDatabaseModule (AngularFireAuthModule для аутентификации) в RootModule.

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
  ]
})

Ответ 2

Внутри 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

Ответ 3

Добавьте его в массив поставщиков в app.module.ts -

  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(appRoutes),
    AngularFireModule.initializeApp(firebaseConfig)
  ],
  providers: [AuthService,**AngularFireAuth, AngularFireDatabase**, AuthGuard, InventoryService]

Ответ 4

Убедитесь, что FireBaseDatabaseModule импортируется из angularfire2/database-устарело, если вы используете FireBaseDatabase из angularfire2/database-deprecated

и наоборот. Единственная проблема заключается в несоответствии операторов импорта, поскольку они должны принадлежать к одному и тому же пакету либо

angularfire2/database или angularfire2/базы данных осуждается

если вы попытаетесь импортировать базу данных из первого и модуля из второго пакета или наоборот. Он не распознает его как DatabaseModule или Database.

------------ ROOT MODULE -------------

    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";

Ответ 5

У меня была эта ошибка в моем приложении Angular. Оказывается, мой авто-импорт импортировал AngularFirebase из 'angularfire2/database-deprecated'. Очистка -deprecated решила мою проблему. Вы также можете проверить свой импорт.