Я хочу отобразить список изображений, сохраненных в firebase, в плоском списке, но функция возвращает обещание вместо URL.Как я могу решить это?Я использовал асинхронное ожидание в функции.Я думаю, что это дает мне обещание, но если я удаляю async, это дает ноль, так как требуется время, чтобы получить url из базы данных.Я пытался в течение недели, но не могу решить это.Любая помощь приветствуется.Спасибо
Код:
renderList = (item) => {
return (
<View style={{ marginBottom: 15, marginLeft: 10 }}>
<Text>{`Date: ${item.Date}`}</Text>
{/*
<Image
source={{ uri: `${this.getImageUrl(item.FileName)}` }} style={{ width: 100, height: 100 }}
/>*/}
<Text>{`${this.getImageUrl(item.FileName)}`}</Text> //it gives object object
</View>
);
}
getImageUrl = async(fileName) => {
let urll;
const { currentUser } = firebase.auth();
const storageRef = firebase.storage().ref().child(`${currentUser.uid}/${fileName}.PNG`);
await storageRef.getDownloadURL().then(function(url) {
urll = url;
console.log('zzz', url); //it gives valid url
}, function(error){
console.log(error);
});
return urll; //it returns object object (promise)
}
render() {
return (
<View style={styles.container}>
<FlatList
data={listArray}
renderItem={({ item }) => this.renderList(item)}
/>
</View>
);
}