我尝试使用 React Native 将图像上传到 firebase。但是当我尝试上传图片时出现错误:
TypeError: Network request failed
我之前使用过此代码两次,然后就可以使用了。这次的不同之处在于我使用 React Native cli 而不是 Expo。此外,这次图像是前一个屏幕的打印屏幕,而不是使用 react-native-image-picker 从库中挑选的图像。
我的代码:
const uploadImage = async () => {
const uri = props.route.params.result;
const childPath = `paintBoards/${
auth().currentUser.uid
}/${Math.random().toString(36)}`;
console.log(childPath);
console.log(uri);
const response = await fetch(uri);
const blob = await response.blob();
const task = storage().ref().child(childPath).put(blob);
const taskProgress = snapshot => {
console.log(`transferred: ${snapshot.bytesTransferred}`);
};
const taskCompleted = () => {
task.snapshot.ref.getDownloadURL().then(snapshot => {
savePostData(snapshot);
console.log(snapshot);
});
};
const taskError = snapshot => {
console.log(snapshot);
};
task.on('state_changed', taskProgress, taskError, taskCompleted);
};
const savePostData = downloadURL => {
firebase
.firestore()
.collection('PaintBoards')
.doc(auth().currentUser.uid)
.collection('UserPaintBoards')
.add({
downloadURL,
caption,
creation: firebase.firestore.FieldValue.serverTimestamp(),
})
.then(function () {
props.navigation.popToTop();
});
}