Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
将Firebase存储中的所有数据放入异步函数React Native中的阵列_Firebase_React Native_Promise_Firebase Storage - Fatal编程技术网

将Firebase存储中的所有数据放入异步函数React Native中的阵列

将Firebase存储中的所有数据放入异步函数React Native中的阵列,firebase,react-native,promise,firebase-storage,Firebase,React Native,Promise,Firebase Storage,我正在尝试获取firebase存储中的所有图像。到目前为止,它是有效的。但问题是如何将数组中的所有数据放在异步函数中,而不仅仅是一个数据,然后将其传递到状态 我的代码: async componentDidMount(){ auth().signInAnonymously(); var arr = []; var storageRef = storage().ref("/madu_mubarak/"); await stor

我正在尝试获取firebase存储中的所有图像。到目前为止,它是有效的。但问题是如何将数组中的所有数据放在异步函数中,而不仅仅是一个数据,然后将其传递到状态

我的代码:

   async componentDidMount(){
        auth().signInAnonymously();

        var arr = [];
        var storageRef = storage().ref("/madu_mubarak/");
        await storageRef.listAll().then((result)=> {
            result.items.forEach((imageItem) =>{
              this.displayItem(imageItem)
            });
          }).catch(function(error) {
            console.warn("error "+error);
          });


    }

    async displayItem(imageItem){
        var arr = [];
        imageItem.getDownloadURL().
            then((url) => {
          console.warn("ur "+url)
          arr.push(url);
          this.setState({
            isLoad: false,
            urlImage: arr
          })
        }).catch((error) =>{
          console.warn("error "+error);
        });


        // return await Promise.all(arr);
    }
请帮忙。 谢谢

主要要点是


异步组件didmount(){
auth().signinanoymously();
var storageRef=storage().ref(“/madu_mubarak/”);
等待storageRef.listAll()。然后((结果)=>{
让承诺=result.items.map((imageItem)=>{
返回imageItem.getDownloadURL()
});
Promise.all(promises).then(URL=>this.setState({images:URL})
}
您需要创建一个从getDownloadUrl返回的承诺数组,并等待使用Primise.all解析所有承诺
然后,您可以将结果分配给状态

查看Promise.all([…])。您可以向其传递一个promises数组,并且只有当数组中的所有promises都存在时,它才会解析resolves@TomSlutsky我已经看过了Promise.all,但我对这方面还是新手,所以我不知道如何实施。