【发布时间】:2018-03-05 23:47:57
【问题描述】:
使用 Firebase 和 Angular 5,我使用快照方法来检索数据而不监听更改。我想保留每个项目的索引/键,因为它被用于链接以导航到单击项目的页面。
这里是 TS:
features = [];
notfeatures = [];
constructor(private Svc: Service, private http: HttpClient){
firebase.database().ref('/reviews').once('value').then((snapshot)=> {
console.log("snapshot", (snapshot.val()));
..........
记录 (snapshot.val()) 给了我一个对象(我无法迭代):
-L6ZwjBbyi4jz21OEoST: {category: "Movies", contributor: "CF1", feature: "No", …}
randomkey1: {category: "Movies", contributor: "CF1", feature: "No", …}
randomkey2: {category: "Movies", contributor: "DS1", feature: "Yes", …}
randomkey3: {category: "TV", contributor: "KH1", feature: "No", …}
所以,我使用forEach 来一个一个地获取所有项目,并在满足条件时将它们推送到两个不同的数组中。
..........
snapshot.forEach(snapshot => {
console.log(snapshot.key, snapshot.val());
if (snapshot.val().feature == "Yes") {
this.features.push(snapshot.val())
console.log("feature", this.features)
}
if (snapshot.val().feature == "No") {
this.notfeatures.push(snapshot.val())
console.log("notfeature", this.notfeatures)
}
});
})
}
但是,这样做意味着我丢失了导航所需的snapshot.key。
如何保留每个项目的 snapshot.key 以用于导航/数据目的?
【问题讨论】:
标签: javascript angular firebase firebase-realtime-database