InvalidPipeArgument:管道“ AsyncPipe”的“ [object Object]”在invalidPipeArgumentError

时间:2018-10-16 07:14:03

标签: html angular firebase

我想从数据库中获取一些数据 这是我的服务

  export class CategoryService {
  constructor(private db: AngularFireDatabase) { }
  getCategories(){
  return this.db.list('/categories'); 
  }

$组件代码

export class ProductFormComponent implements OnInit {

  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>

2 个答案:

答案 0 :(得分:1)

Firebase库返回承诺。使它们返回可观测值。

import { from } from 'rxjs/operators';

export class CategoryService {
  constructor(private db: AngularFireDatabase) { }
  getCategories(){
  return from(this.db.list('/categories')); 
}

答案 1 :(得分:0)

尝试使用这些代码即可

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

@Injectable({
  providedIn: 'root'
})

export class CategoryService {
   constructor(private db: AngularFireDatabase) {}

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

}