Image 如何从firebase存储中获取图像文件

Image 如何从firebase存储中获取图像文件,image,firebase,react-native,download,firebase-storage,Image,Firebase,React Native,Download,Firebase Storage,我想从firebase存储中获取图像。 路径是:images/recipes/test.jpg,我想在从我的集合的特定路径获取其他数据的同时创建它 以下是全部代码: \u retrieveData=async()=>{ 设fbData=[]; 让getImageURL=''; 等待Firebase.db.collection('fl_content').get()。然后(query=>{ query.forEach(doc=>{ firebase.files.ref().child(“image

我想从firebase存储中获取图像。 路径是:images/recipes/test.jpg,我想在从我的集合的特定路径获取其他数据的同时创建它

以下是全部代码:

\u retrieveData=async()=>{
设fbData=[];
让getImageURL='';
等待Firebase.db.collection('fl_content').get()。然后(query=>{
query.forEach(doc=>{
firebase.files.ref().child(“images/recipes/test.jpg”)
.getDownloadURL()
。然后(url=>{
getImageURL=url;
});
fbData.push({
id:doc.id,
titel:doc.data().titel,
beschreibung:doc.data().beschreibung,
图片:getImageURL
});
})
});
this.setState({fbData,isLoading:false});
}
我看到一个永无止境的活动指示器:(。 没有“firebase.files”部分(直到fbData.push开始),我从我的收藏中获得id、titel和beschreibung

有人知道吗,我怎样才能直接获得图像?之后我想获得图像,这是作为收藏中的参考。但首先,直接获得图像会很好


认证部分在第一步是公开的!

是的,谢谢!我现在就知道了。这是我的代码:

_retrieveData = async() => {
      let fbData = [];

      await Firebase.db.collection('recipes').get().then(query => {
        query.forEach(doc => {
          Firebase.storage.ref(doc.data().teaser).getDownloadURL().then(url => {
            fbData.push({
              id: doc.id,
              titel: doc.data().titel,
              teaser: url
            });
            this.setState({ fbData, isLoading: false });
          });
        })
      });
    }

是的,谢谢!我现在就拿到了。这是我的密码:

_retrieveData = async() => {
      let fbData = [];

      await Firebase.db.collection('recipes').get().then(query => {
        query.forEach(doc => {
          Firebase.storage.ref(doc.data().teaser).getDownloadURL().then(url => {
            fbData.push({
              id: doc.id,
              titel: doc.data().titel,
              teaser: url
            });
            this.setState({ fbData, isLoading: false });
          });
        })
      });
    }

看起来您没有正确处理承诺。getDownloadURL是异步的,会立即返回。同样令人困惑的是,您混合了async/await,然后在同一段代码中回调。如果您有解决方案要共享,请随时回答您自己的问题。是的,完成了。我可以在任何地方关闭此线程吗?您可以接受您的建议n回答正确(时限到期后),它将完成。看起来您没有正确处理承诺。getDownloadURL是异步的,会立即返回。您混合使用async/await,然后在相同的代码位中回调,这也让人感到困惑。如果您有解决方案要共享,请随时回答您自己的问题。是的,完成了。我可以在任何地方关闭此线程吗?你可以接受你自己的答案是正确的(在时间限制到期后),它将被完成。