Я сохраняю изображения, выбранные из Expo ImagePicker / Camera, в Firebase Storage и извлекаю изображения, используя getDownloadURL
, getDownloadURL .
Используя результат этой функции, я сохраняю ссылку изображения в моей базе данных Firebase Realtime и показываю эти изображения с помощью компонента изображенияact-native.
Полученная ссылка на изображение - это нечто вроде 'https://firebasestorage.googleapis.com/v0/b/my-app.appspot.com/o/image%2FHaroi3o9Krf1wP9j0DzHIqfJ8Sz2%2F-imageName.jpg?alt=media&token=x'.
Когда я добавляю этот URL к изображению, ничего не отображается.
// FlatList to show data
<FlatList
data={data}
refreshing={isRefresh}
onRefresh={refresh}
keyExtractor={data => data.id}
renderItem={data => {
return (
<CustomItem imageUrl={data.item.imageUrl} />
);
}}
/>
// Image Component (In another file)
// (gave up properly formatting the codes.. anyone knows how?
// when i copy and paste it, this is the result below.)
const { imageUrl } = props;
const [imageLink, setImageLink] = useState('');
useEffect(() => {
setImageLink(imageUrl);
}, [props]);
console.log('imageUrl', imageUrl);
<View style={styles.imageContainer}>
{!imageLink.length === 0 ? (
<Image style={{width: '100%', height: '100%'}} source={{ uri: imageLink}} />
) : (
<Text>No image found!</Text>
)}
</View>
То, что я пробовал, хранит полученный реквизит imageUrl
переходит в состояние с useEffect с зависимостью в качестве реквизита, а затем устанавливает исходный / uri компонента Image в это состояние. Но это не сработало.
Благодарим за помощь.