foreach中的Firebase参考

时间:2018-08-03 04:31:44

标签: javascript firebase react-native

我想显示一个屏幕,其中包含用户针对某项任务的报价。问题是我必须加载商品,然后对于每个商品,我都需要用户数据作为其审阅计数器。

为什么这不起作用?我根本无法弄清楚 使用下面的代码,我已经完成了将显示数据的操作,但是显示了2次。第一次,我只获得了要约数据,第二次获得了所需的全部数据。但是它只能显示一次,并且只能显示完整数据。我该怎么办?

  loadTaskOffers() {
var offers = [];
firebase
  .database()
  .ref("Offers")
  .child(this.state.taskID)
  .once("value", snap => {
    if (snap.exists()) {
      snap.forEach(snap_offer => {
        var offer = snap_offer.val();
        offers.push(offer);
      });
      this.setState({ only_offers: offers });
    }
  })
  .then(() => {
    this.state.only_offers.forEach(offer => {
      firebase
        .database()
        .ref("Users")
        .child(offer.posterID)
        .once("value", snap => {
          offer["user"] = {
            fullName:
              snap.val().firstName +
              " " +
              snap.val().lastName.charAt(0) +
              ".",
            profileImgUrl: { uri: snap.val().profileImgUrl },
            averageRating: snap.val().reviews.asWorker.average,
            ratingCounter: snap.val().reviews.asWorker.count
          };
          console.log(offer);
          offers.push(offer);
        });
    });
    this.setState({ offers: offers, only_offers: null });
    console.log(this.state.offers);
  });

}

0 个答案:

没有答案