Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

302
Vistas
downloadURL de Firebase Storage es nulo después de cargar correctamente un archivo

Soy nuevo en firebase y tengo un problema aquí.

Ya he subido con éxito mi imagen al almacenamiento de Firebase, sin embargo, necesito obtener la URL de descarga de inmediato y publicarla en la base de datos. Y no estoy seguro de por qué no funciona dentro de ese cierre.

El siguiente es mi código:-

 func CreateNewChatRoom(user: User, caption: String, data: Data){ let filePath = "\(user.uid)/\(Int(NSDate.timeIntervalSinceReferenceDate)).jpg" let metaData = StorageMetadata() metaData.contentType = "image/jpg" let reference = storageRef.child(filePath) reference.putData(data, metadata: metaData) { (metadata, error) in if let error = error { print("\(error.localizedDescription)") return } reference.downloadURL(completion: { (url, error) in if let error = error{ print("Error : \(error.localizedDescription)") return } else{ if let downloadURL = url?.absoluteString { let idRoom = self.BASE_REF.child("rooms").childByAutoId() idRoom.setValue(["caption":caption, "thumbnailUrlFromStorage": self.storageRef.child(metadata!.path!).description,"fileUrl": downloadURL]) } } }) } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tengo el mismo problema, y encontré la siguiente solución, espero que le sea útil a alguien. rápido 5

importar FirebaseAuth importar FirebaseStorage importar FirebaseFirestore

typealias AddStoryResult = (Bool, ¿Error?) -> Void typealias UploadImageResult = (StorageMetadata?, ¿Error?) -> Void

clase StoryFirebaseAPI {

 static let storage = Storage.storage() static var downloadUrlString: URL? var image: UIImage? let photoUri = "smth uri path" uploadImage(image, photoUriString: photoUri) { (metadata: StorageMetadata?, error: Error?) in guard let metadata = metadata else { if let error = error { print("Error occured: \(error)") } completion(false, error) return } // and at this point I have print(downloadUrlString) completion(true, nil) }

}

extensión StoryFirebaseAPI {

 func uploadImage(_ image: UIImage, photoUriString: String, completion: @escaping UploadImageResult) { guard let imageData = image.jpegData(compressionQuality: 0.5) else { print("smth error") completion(nil, nil) return } let storageRef = storage.reference().child(photoUriString) let imageMetadata = StorageMetadata() imageMetadata.contentType = "image/jpeg" storageRef.putData(imageData, metadata: imageMetadata) { (storageMetadata, error) in if let error = error { print("Error: \(error.localizedDescription)") completion(nil, error) return } guard let unwrappedMetadata = storageMetadata else { print("smth error") print("Error: \(error?.localizedDescription ?? "")") completion(nil, error) return } storageRef.downloadURL { url, error in if let error = error { print("Error: \(error.localizedDescription)") completion(nil, error) return } else { if let url = url { downloadUrlString = url completion(unwrappedMetadata, nil) } } } print("Image uploaded successfully") } }

}

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda