Я не могу получить данные из базы данных Firebase, используя асинхронный канал - PullRequest
0 голосов
/ 26 июня 2018

Я изучаю Angular 4, наблюдая за ходом Удеми Моша Хамедани. При построении списка категорий в своем приложении он использовал метод list «AngularFireBase». Я пытался продублировать код, но асинхронный канал не показывает никаких результатов. Я пытался сделать свое исследование, но тщетно.

Я также читал, что некоторые вещи были изменены (https://github.com/angular/angularfire2/blob/master/docs/version-5-upgrade.md). Однако мое приложение, похоже, вообще не находит метод valueChanges. Кроме того, метод db.list возвращает нужное мне значение в соответствии с VS Код Интеллект.

класс, в который я возвращаю категории

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';

@Injectable()
export class CategoryService {

constructor(private db: AngularFireDatabase) { }

getCategories() {
     return this.db.list('/categories');
}

}

класс, из которого я пытаюсь использовать категории в HTML-шаблон

import { Component } from '@angular/core';
import { CategoryService } from '../../category.service';

@Component({
  selector: 'app-product-form',
  templateUrl: './product-form.component.html',
  styleUrls: ['./product-form.component.css']
})
export class ProductFormComponent {
  categories$;

  constructor(categoryService: CategoryService) {
    this.categories$ = categoryService.getCategories();
  }
}

HTML-шаблон

<div class="form-group">
  <label for="category">Category</label>
    <select id="category" class="form-control">
      <option value=""></option>
      <option *ngFor="let c of categories$ | async" [value]="c.$key">
        {{ c.name }}
      </option>
    </select>
</div>

пожалуйста, помогите, потому что я в отчаянии

1 Ответ

0 голосов
/ 04 июля 2018

Итак, 2 недели отладки и обдумывания обходных путей. Angular 4.0.0 отлично работает с angularfire2 4.0.0-rc.1 и firebase 4.2.0. Проблема была с моей структурой базы данных firebase - я вложил поле категорий еще один раз. Иисус.

...