0

Ich folge Googles guide um ein Bild aus dem Speicher zu bekommen und es dann in ein ImageView zu setzen, indem ich "FirebaseStorageUI" benutze, welches SDWebImage zu verwenden scheint.SD nicht gesetzt Bild aus Firebase Speicher gezogen

Ich habe das Problem, dass das Bild einfach nicht eingestellt ist. In der Konsole sind keine Fehler aufgetreten. Mein Code:

@IBOutlet weak var imageView: UIImageView! 
var ref = FIRDatabase.database().reference() 
var storageRef = FIRStorage.storage().reference() 

    override func viewWillAppear(_ animated: Bool) { 
     self.getHouseID(){ (houseName) ->() in 
      if houseName.characters.count > 0 { 
       self.houseIDLabel.text = houseName // does work correctly 
       let photoRef = self.storageRef.child("\(houseName)/\("housePhoto.jpg")") 
       self.housePhotoImageView.sd_setImage(with: photoRef) // not working 
       } else { 
       print("error while setting image and house name label") 
      } 
     } 
    } 

Meine Lagerung sieht wie folgt aus:

enter image description here

enter image description here

Das Label wird richtig eingestellt mit dem houseName, die auch in den Speicherpfad verwendet wird, die zum Abrufen Bild. Alles, was ich hier verpasst habe?

Antwort

1

1. Ich denke, das Problem ist, dass Ihre awesomehouse/ hat einen Schrägstrich am Ende.

Versuchen Sie, die child() Ihre schaffen zu überprüfen: awesomehouse oder awesomehouse/

2. Die zweite mögliche Problem ist, dass Sie versuchen, "housePhoto.jpg" zu holen, anstatt gespeichert housePhoto.

So sollte es sein:

let photoRef = self.storageRef.child("awesomehouse/").child("housePhoto") 
self.housePhotoImageView.sd_setImage(with: photoRef) // should work now 

Oder es besser Foto mit der Erweiterung ".jpg" den Speicher zu sparen, dann wäre es:

let photoRef = self.storageRef.child("awesomehouse/").child("housePhoto.jpg") 
self.housePhotoImageView.sd_setImage(with: photoRef) // should work now 

beide versuchen. Ich denke, es wird dein Problem lösen.

Hoffe es hilft

+0

War in der Tat ein Pfadproblem. Danke vielmals! – ffritz

+0

@ffritz froh 2 hören :) –

1

Meine erste Schätzung wäre, dass Sie dies nicht in der Hauptwarteschlange einstellen.

Try this:

DispatchQueue.main.async { 
    self.housePhotoImageView.sd_setImage(with: photoRef) 
} 

Ich weiß nicht, ob es wichtig ist, dass die Bilddatei keine Dateierweiterung hat, dass auch wert sein könnte versuchen. Hoffe, das hilft

+0

War ein Pfadproblem. Trotzdem könnten Sie mit der Dateierweiterung recht haben. – ffritz

Verwandte Themen