2017-12-29 24 views
0

Ich versuche mein userProfile-Bild auf Firebase hochzuladen, obwohl das Hochladen erfolgreich war, aber wenn ich es über den Download-Link auf der Firebase-Konsole heruntergeladen habe, wird es als Dokumentdatei heruntergeladen und nicht die JPG-Datei, die ich hochgeladen habe? Auch meine UIImage übernahm alle meine Ansichten in der View-Controller, wenn ich das Bild auf ein bestimmtes Bild einstellen.ios lädt Bild zu Firebase, aber es ist nicht, wenn ich versuche, es herunterzuladen?

hier ist mein Code:

@IBAction func registerRegisterButton(_ sender: UIButton) { 
    let userProfileImageRef = self.storage.reference().child("userProfileImage") 

    //testing image setup 
    self.registerUserProfileImage.image = UIImage(named:"puppy.jpg") 

    // Registering user with email 
    Auth.auth().createUser(withEmail: registerUserEmailTextField.text!, password: registerUserPasswordTextField.text!) { (user, error) in 

     if error != nil { 
      print(error) 
     } else { 
      print("Registration complete") 

      // if register succcessful, we upload the user profile image to firebase 
      let data = Data() 

      //uploading user profile picture 
      if let uploadData = UIImagePNGRepresentation(self.registerUserProfileImage.image!) { 
       userProfileImageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in 

        if error != nil { 
         print(error) 
         return 
        } else { 
         print("Success upload!") 
         self.dismiss(animated: true, completion: nil) 
         self.performSegue(withIdentifier: "registrationCompleteSegue", sender: self) 
        } 
       }) 

      } 
     } 
    } 
} 

Vielen Dank für Ihre Hilfe im Voraus

+0

Und wie Sie es abrufen? –

+0

@richie Ich teste es nur mit der Download-URL auf meinem Firebase – porkchopbento

+0

Es ist nicht klar, was Sie fragen. Erklär es mehr –

Antwort

0

Ich glaube, Sie versuchen, die URL des Image herunterladen und in Image Einstellung. Wenn ja, dann erstellen Sie eine meta data vom Typ und setzen Sie die content type als image/jpeg. Dann übergeben Sie es in putData Methode von Firebase Reference und erhalten Sie die ImageURL mit dem metadata Parameter der PutData-Methode.

let metaData = StorageMetadata() 
metaData.contentType = "image/jpg" 

     if let uploadData = UIImagePNGRepresentation(self.registerUserProfileImage.image!, 0.8) as NSData { 

      userProfileImageRef.putData(uploadData as Data, metadata: metaData, completion: { (metadata, error) in 

       if error != nil { 
        print(error) 
        return 
       } else { 
        print("Success upload!") 
        var imageURL = (metadata?.downloadURLs?[0].absoluteString)! //Here's your image url. Then just set it to ImageView 

        self.dismiss(animated: true, completion: nil) 
        self.performSegue(withIdentifier: "registrationCompleteSegue", sender: self) 
       } 
      }) 
     } 

Zum Festlegen eines Bilds mit URL. Bitte überprüfen Sie diesen Link https://stackoverflow.com/a/43486949/4608334

Verwandte Themen