/ / Swift wyświetlany firebase photoUrl nie może zastąpić obrazu selektorem obrazów - uwierzytelnianie szybkie, firebase, firebase

Wyświetla się w trybie "swift". PhotoUrl nie może zastąpić obrazu za pomocą selektora obrazów - szybki, firebase, uwierzytelnianie firebase

Używam Firebase jako zaplecza mojej aplikacji. Po zakończeniu uwierzytelnienia użytkownik przejdzie do strony tworzenia profilu. Wyświetla zdjęcie profilowe użytkownika z Facebooka.

Używam tego kodu do wyświetlenia

func displayProfilePic(user: FIRUser?){

let photoURL = user?.photoURL
struct last {
static var photoURL: NSURL? = nil
}
last.photoURL = photoURL;  // to prevent earlier image overwrites later one.
if let photoURL = photoURL {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
let data = NSData.init(contentsOfURL: photoURL)
if let data = data {
let image = UIImage.init(data: data)
dispatch_async(dispatch_get_main_queue(), {
if (photoURL == last.photoURL) {
self.profilePic.image = image
}
})
}
})
} else {
profilePic.image = UIImage.init(named: "DefaultPic")
}

jednak, Pozwalam również użytkownikowi wybrać własny profilobraz z aparatu lub biblioteki zdjęć. Gdy użytkownik wybierze swój obraz, wyświetli wybrany obraz przez 1 do 2 sekund i wyświetli zdjęcie profilowe na Facebooku. To znaczy, że „wybrany obraz nie może zastąpić zdjęcia profilowego na Facebooku”

To mój kod do aparatu i biblioteki zdjęć

func openGallary(){

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){
print("Pick Photo")

self.imagePicker.delegate = self
self.imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.imagePicker.allowsEditing = true
self.presentViewController(self.imagePicker, animated: true, completion: nil)
}
}

func openCamera(){
if(UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
self.imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
self.imagePicker.allowsEditing = true
self.presentViewController(self.imagePicker, animated: true, completion: nil)

}else{
print("you got no camara")
}
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
self.dismissViewControllerAnimated(true, completion: { () -> Void in

})
profilePic.image = image
}

Odpowiedzi:

0 dla odpowiedzi № 1

Uwierzytelnianie Firebase wykonuje zdjęcie URL, więc publiczna lokalizacja, w której zdjęcie profilowedla użytkownika jest obecny. Jeśli chcesz zezwolić użytkownikowi na przesłanie nowego zdjęcia profilowego, musisz znaleźć miejsce do przechowywania zdjęcia, a następnie umieścić adres URL w profilu uwierzytelniania Firebase.

Jednym z miejsc, w których można przechowywać takie zdjęcie profilowe, jest Magazyn Firebase. Zobacz dokumentację na jak przesłać obraz z iOS i wtedy wygeneruj adres URL pobierania które przechowujesz w profilu użytkownika.