This commit is contained in:
2025-09-02 15:51:07 +02:00
parent 8223b572b9
commit 1c9974d362
5 changed files with 259 additions and 118 deletions
+27 -4
View File
@@ -1,13 +1,36 @@
import { Platform } from "react-native";
import Compressor from "react-native-compressor";
import firebase from "../config/firebase";
export function uploadFileToFirebase({ uri, path }) {
export function uploadFileToFirebase({
uri,
path,
shouldCompress = false,
fileType = "",
}) {
return new Promise(async (resolve, reject) => {
try {
let resultResize = { uri };
let workingURI = uri;
const response = await fetch(resultResize.uri);
// Optionally compress before upload
try {
if (shouldCompress && Platform.OS !== "web") {
if (fileType === "VIDEO") {
console.log("Compressing video...");
workingURI = await Compressor.Video.compress(workingURI);
} else if (fileType === "IMAGE") {
// Basic image compression
workingURI = await Compressor.Image.compress(workingURI, {
compressionMethod: "auto",
});
}
}
} catch (e) {
console.warn("Compression failed, uploading original file", e?.message);
workingURI = uri;
}
const response = await fetch(workingURI);
const blob = await response.blob();
const uploadTask = firebase.storage().ref(path).put(blob);