【发布时间】:2021-09-28 20:51:25
【问题描述】:
我尝试在 iOS 上使用 React Native 将“base64”图像上传到 Firebase。但是当我尝试上传图片时,出现以下错误:
undefined 不是一个对象(评估 'uri.substring')
我使用route.params 获取我的图像,如果我在这样的视图中显示图像,则会显示图像。
<Image style={styles.image} source={{ uri: `data:image/png;base64,${myImage}` }}/>
如果图像是“base64”,我应该做其他事情还是我应该做什么?
这是我的代码:
// Here is how I get the image
const { myImage } = props.route.params;
const uploadImage = async () => {
const {uri} = myImage;
const filename = uri.substring(uri.lastIndexOf('/') + 1);
const uploadUri = Platform.OS === 'ios' ? uri.replace('file://', '') : uri;
setUploading(true);
setTransferred(0);
const task = storage()
.ref(filename)
.putFile(uploadUri);
// set progress state
task.on('state_changed', snapshot => {
setTransferred(
Math.round(snapshot.bytesTransferred / snapshot.totalBytes) * 10000
);
});
try {
await task;
} catch (e) {
console.error(e);
}
setUploading(false);
Alert.alert(
'Photo uploaded!',
'Your photo has been uploaded to Firebase Cloud Storage!'
);
};
【问题讨论】:
-
我更新了我的问题。
-
那么
result是一个包含base64编码字符的字符串? -
是的,没错!
标签: javascript firebase image react-native firebase-storage