我有一个我想要显示的用户列表。 哪个有效,我可以显示用户名但不能显示键。 {{user.uid}}或{{user.key}}打印所有名称,{{user.username}}。 有什么想法吗?
我的结构看起来像这样:
Component.ts
allUsers: FirebaseListObservable<any[]>;
constructor(private afAuth: AngularFireAuth,
private db: AngularFireDatabase, private router: Router) {
this.allUsers = db.list('/users');
}
Component.html
<ul class="list-group gamer-list">
<li class="list-group-item agamer" *ngFor="let user of allUsers | async">
<div class="material-switch">
<input id="switch{{user.username}}" name="switch{{user.username}}" type="checkbox"/>
<label for="switch{{user.username}}" class="switch{{user.username}}"></label>
</div>
{{user.key}} - {{user.username}}
</li>
</ul>
答案 0 :(得分:0)
解决我的问题:
我尝试将代码更改为:
this.userRef = db.list('/users');
this.allUsers = this.userRef.snapshotChanges().map(changes => {
return changes.map(c => ({ key: c.payload.key, ...c.payload.val()
}));
});
起初我有
allUsers: FirebaseListObservable<any[]>;
但看起来像FirebasListObservable&amp; amp;我不得不这样做:
userRef: AngularFireList<any>;
allUsers: Observable<any[]>;
但它仍然不可能 - 我的编码程序中有一个错误,使用this.allUsers,它说它是FirebaseListObservable类型,但事实并非如此。 所以我改变了我的导入: 从
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database-deprecated';
要:
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
希望这有助于所有面临同样问题的人!