【发布时间】:2018-12-05 11:48:26
【问题描述】:
我很难解决我目前遇到的这个问题。你看,我使用 Firebase 作为我的数据库来存储和获取数据。
现在,我希望能够返回在 Firebase .once 调用中创建的数组,但我遇到了一些困难。到目前为止,这是我的代码:
调用函数(返回函数):
<p>{this.fetchStartingPrice(singleProduct.id)}</p>
这是我想要显示特定值的地方,我试图在下面获取:
fetchStartingPrice(category){
let promises = [];
promises.push(this.fetchPrices(category));
Promise.all(promises).then(result => {
console.log(result);
})
}
我刚刚使用了一个 console.log 来尝试解决错误。
fetchPrices(category){
var allPrices = [];
allProductsFirebase.child(category).once('value', (snapshot) => {
snapshot.forEach((childSnapshot) => {
if(childSnapshot.key == category){
allPrices.append(childSnapshot.val().brand);
}
});
return allPrices;
})
}
所以基本上,我想遍历 allProductsFirebase 以尝试首先识别产品的品牌,如果它与 fetchStartingPrice() 和 fetchPrises() 中用作参数的品牌匹配,我想要将该产品的具体价格存储在一组数字(价格)中。在遍历整个快照后,我想返回仅包含产品价格的完整数组,然后通过fetchStartingPrice(),我想使用Math.min(promises) 来获取该数组中的最低数字。但是,我很难做到这一点。有人可以帮我解决这个问题吗?
在这一切之后,我希望能够返回 fetchStartingPrice() 中的值。
【问题讨论】:
标签: arrays reactjs firebase firebase-realtime-database promise