【问题标题】:How to return an array of children from firebase in React-Native如何在 React-Native 中从 firebase 返回一组子项
【发布时间】:2018-12-18 15:29:37
【问题描述】:

我的 Firebase 数据库包含 JSON 对象,每个对象都具有相同的参数,如下所示。 Firebase data

我想得到一个包含每个对象国家的数组。因此,如果我有 4,000 个对象,我想获得一个包含一个国家/地区的 4,000 个字符串的数组。

现在我可以让控制台使用下面的代码将所有 4,000 个对象记录到一个数组中。

componentWillMount() {
   this.fetchData();
}
fetchData = async () => {
    var data1 = [];
    var fireBaseResponse = firebase.database().ref();
    fireBaseResponse.once('value').then(snapshot => {
        snapshot.forEach(item => {
            var temp = item.val();
            data1.push(temp);
            return false;
   });
   console.log(data1);
   });
}

但是当我尝试这样做时

 var fireBaseResponse = firebase.database().ref().child('country');

我得到了一个什么都没有的数组。

任何帮助都会很棒。

【问题讨论】:

  • 相信你必须使用snapshot.val()来访问返回的对象
  • 我为每个项目做,我确实得到了一个包含 4,000 个对象的数组。问题是数组包含所有项目信息,而不仅仅是国家/地区。
  • 那么你应该先将item.val().country提取到一个新对象中,然后再将其推入data1。我希望这会有所帮助!
  • 您的权利。我不敢相信我没有看到。非常感谢
  • 没问题。很高兴我能帮上忙

标签: javascript json firebase react-native firebase-realtime-database


【解决方案1】:

如 cmets 中所述,您可以在将其推入数组之前创建一个仅包含国家/地区的新临时对象。

snapshot.forEach(item => {
    var temp = { country: item.val().country };
    data1.push(temp);
    return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2021-01-15
    • 2019-05-30
    • 2020-03-07
    • 1970-01-01
    相关资源
    最近更新 更多