【发布时间】:2022-01-06 06:16:03
【问题描述】:
我正在尝试将视频上传到 iOS 上的 Firebase 存储。 Android 工作得很好。这是导致它的代码(代码中有 cmets 以显示它何时崩溃)。另外,我使用的是我自己的 iPhone 进行测试,而不是模拟器。
export const mediaUpload = async (imageObject) => {
// getting blob from a local file a user uploads from ImagePicker
const blob = await fetch(imageObject[0].uri);
const blobObject = await blob.blob();
// creating reference path in storage
const fileRef = ref(storage, `${auth.currentUser.uid}/videos/${uuid.v4()}`);
// ----- no crash so far... -------
// this is the issue line
const attemptToUpload = await uploadBytes(fileRef, blobObject);
// ------> APP CRASHES
}
在 Android 上,这适用于图像和视频。在 iOS 上,图像可以工作,但视频会使应用程序完全崩溃。 blob 类型是视频/快速时间。为什么 uploadBytes 方法会导致应用崩溃?
编辑:答案是 Firebase v9 在处理视频上传到存储 100% 方面似乎与 Expo 不兼容。甚至 android 在没有任何错误消息的情况下挂起视频上传。我解决这个问题的方法是回到 Firebase 8.10.0 版本。这 100% 有效。
【问题讨论】:
标签: javascript ios firebase react-native expo