Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React Native中从firebase返回子数组_Javascript_Json_Firebase_React Native_Firebase Realtime Database - Fatal编程技术网

Javascript 如何在React Native中从firebase返回子数组

Javascript 如何在React Native中从firebase返回子数组,javascript,json,firebase,react-native,firebase-realtime-database,Javascript,Json,Firebase,React Native,Firebase Realtime Database,我的Firebase数据库包含JSON对象,每个对象的参数如下所示 我想得到一个数组,它包含每个国家的对象。因此,如果我有4000个对象,我希望得到一个包含4000个字符串的数组,所有字符串都包含一个国家 现在,我可以让控制台使用下面的代码将所有4000个对象记录到一个数组中 componentWillMount() { this.fetchData(); } fetchData = async () => { var data1 = []; var fireBase

我的Firebase数据库包含JSON对象,每个对象的参数如下所示

我想得到一个数组,它包含每个国家的对象。因此,如果我有4000个对象,我希望得到一个包含4000个字符串的数组,所有字符串都包含一个国家

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

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');
我什么都没有得到


任何帮助都会很好

如注释中所述,您可以创建一个新的临时对象,在将其放入数组之前只包含country

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

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