Angularfire获取列表并动态呈现

时间:2018-07-11 18:25:39

标签: angular firebase angularfire2

我尝试动态使用Angular,但是HMI出现了一些问题,所以现在我发现了Angularfire。 Doc看起来有些过时了,我发现现在没有很好的例子在工作。我需要构建一个动态应用程序。我按照angularfire2 docs + stackoveflow中的步骤进行操作:

export class RoomsComponent implements OnInit {
    rooms: AngularFireList<Room[]>;

    constructor(private roomService: RoomService, private router: Router, private db: AngularFireDatabase) {
        this.rooms = db.list('rooms');
        console.log( this.rooms );
     }

控制台输出: db.list('rooms')

<li *ngFor="let room of rooms">
    <pre>{{ room.id }}</pre>

</li>

会给出错误:

  

错误错误:找不到其他支持对象'[对象对象]'   类型为“对象”。 NgFor仅支持绑定到Iterables,例如   数组。

试图添加

  

|异步

但是会给予

  

错误错误:InvalidPipeArgument:管道的“ [对象对象]”   “ AsyncPipe”

Firebase数据库: database

(例如,如果在db中添加了某些内容,则需要在每个用户的页面中对其进行动态更新) 一些帮助会很棒!

1 个答案:

答案 0 :(得分:0)

将您的房间变量更改为

rooms: Observable<any>;

要检索数据,您需要使用ValueChanges方法。

 constructor(private roomService: RoomService, private router: Router, 
 private db: AngularFireDatabase) {
        this.rooms = db.list('rooms').valueChanges();;
        console.log( this.rooms );
     }