Estoy tratando de eliminar una imagen del almacenamiento de Firebase en React Native mediante downloadURL. También estoy usando web V9. Anotar los fragmentos de código más esenciales:
import { deleteObject, getStorage, ref } from "firebase/storage"; ... // DownloadURL const photo = "https://firebasestorage.googleapis.com.... "; const storage = getStorage(); ... const storageRef = ref(storage, photo); deleteObject(storageRef) .then(() => { console.log("File deleted successfully"); }) .catch((error) => { console.log(error.message); });Mi código está inspirado en aquí y recibí este error:
[Rechazo de promesa no controlado: FirebaseError: Firebase Storage: la operación 'deleteObject' no se puede realizar en una referencia raíz, cree una referencia que no sea raíz usando un elemento secundario, como .child('file.png'). (almacenamiento/operación raíz no válida)] Estoy un poco confundido.
Edición posterior:
Mi función que carga la imagen y obtiene la URL de descarga:
// uri is returned from "expo-image-picker" const uploadImageAsync = async (uri) => { // manipulateAsync imported from 'expo-image-manipulator' const manipResult = await manipulateAsync(uri, [], { compress: 0.6, format: "jpeg", }); const response = await fetch(manipResult.uri); const blob = await response.blob(); const imageName = Date.now().toString(); const fileRef = ref(storage, `avatar/${user.uid}/${imageName}.jpg`); const result = await uploadBytes(fileRef, blob); getDownloadURL(fileRef).then((snapshot) => { // downloadURL is added to Redux state to be used later dispatch(addPhoto(snapshot)); }); };