如何循环显示Firebase中的数据

时间:2019-05-03 16:27:00

标签: firebase-realtime-database angularfire2

我在firebase中有数据,我想使用循环来显示它们。

class C extends A{
    protected static $things; // add this and B will not interfere!

    public static function things(){
        static::$things[2] = 'Thing C';
        return static::$things;        
    }
}

我无法显示第二个循环,NgFor仅支持绑定到Iterables(例如数组)。如何转换?

1 个答案:

答案 0 :(得分:1)

在firebase中,通过snapshotChanges()检索数据包括具有{key,payload,prevKey,type}形式的实际数据的元数据。

在用户情况下,您尝试访问 item.name ,但未定义。

您必须在迭代之前提取有效负载。您可以尝试这样的事情。

items$: any;

    constructor(db: AngularFireDatabase) {
        this.items$ = db.list(`/users/`).snapshotChanges()
            .pipe(map(changes => changes.map(c => ({
                key: c.key,
                payload: c.payload.val(),
                type: c.type,
                prevKey: c.prevKey
            }))));
    }

    <div *ngFor="let item of items$ | async;">
        Items: {{item.key}}
        name: {{item.payload.name}}
    </div>

如果不需要,请使用valueChanges()而不是snapshotChanges()。

有关更多详细信息,https://github.com/angular/angularfire2/blob/master/docs/rtdb/lists.md