Saltar al contenido

¿Cómo eliminar un archivo de Firebase Storage con flutter?

Basta ya de buscar por todo internet ya que has llegado al espacio adecuado, tenemos la solución que quieres y sin complicaciones.

Solución:

Actualización (2019-08-03):

De acuerdo con este PR, ahora hay un getReferenceFromUrl método en FlutterFire que permite buscar una referencia de almacenamiento por su URL de descarga.


Respuesta anterior:

En Android puedes llamar getReferenceForUrl() conseguir un StorageReference desde una URL de descarga, y existe un método similar en iOS.

Pero no puedo encontrar un método correspondiente en los documentos de referencia de FlutterFire. Desafortunadamente, esto significa que no hay forma de mapear desde una URL de descarga a una StorageReference en Flutter.

Esto suena como una omisión, por lo que recomiendo enviar su +1 en esta solicitud de función.

Por el momento, esto significa que deberá tener la ruta relativa al archivo en Cloud Storage para poder eliminarlo de Flutter. Con esa ruta, su código actual funcionaría.

cambiar ruta de archivo a

String filePath = 'https://firebasestorage.googleapis.com/v0/b/dial-in-21c50.appspot.com/o/default_images%2Fuser.png?alt=media&token=c2ccceec-8d24-42fe-b5c0-c987733ac8ae'
                  .replaceAll(new 
                  RegExp(r'https://firebasestorage.googleapis.com/v0/b/dial-in-21c50.appspot.com/o/default_images%2F'), '').split('?')[0];

FirebaseStorage.instance.ref().child(filePath).delete().then((_) => print('Successfully deleted $filePath storage item' ));

Implementé un código más limpio pero igual que @earyhe, que está usando Uri.decodeFull() y Path.basename(). Probé y funcionó.

import 'package:path/path.dart' as Path;


  Future deleteImage(String imageFileUrl) async 
  var fileUrl = Uri.decodeFull(Path.basename(imageFileUrl)).replaceAll(new RegExp(r'(?alt).*'), '');


final StorageReference firebaseStorageRef =
    FirebaseStorage.instance.ref().child(fileUrl);
    await firebaseStorageRef.delete();
 

Reseñas y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *