Files
musicland/src/helpers/uploadToFirebase.js
T
Philip Cesar Garay 84fc719a10 update
2025-07-31 21:25:33 +08:00

43 lines
1.1 KiB
JavaScript

import { Platform } from "react-native";
import firebase from "../config/firebase";
export function uploadFileToFirebase({ uri, path }) {
return new Promise(async (resolve, reject) => {
try {
let resultResize = { uri };
const response = await fetch(resultResize.uri);
const blob = await response.blob();
const uploadTask = firebase.storage().ref(path).put(blob);
uploadTask.on(
Platform.OS === "web"
? "state_changed"
: firebase.storage.TaskEvent.STATE_CHANGED,
(snapshot) => {
if (
Platform.OS !== "web" &&
snapshot.state === firebase.storage.TaskState.SUCCESS
) {
snapshot.ref.getDownloadURL().then((resultURI) => {
resolve({ resultURI });
});
}
},
(error) => {
reject(error);
},
async () => {
const url = await firebase.storage().ref(path).getDownloadURL();
resolve({ resultURI: url });
}
);
} catch (e) {
reject(e);
}
});
}