/ / Swift zobrazená Firebase photoUrl nemôže nahradiť obrázok výberom obrázkov - swift, firebase, firebase-authentication

Swift zobrazené firebase photoUrl nemôže nahradiť obrázok pomocou výberu obrázkov - swift, firebase, firebase-authentication

Ako pozadie svojej aplikácie používam Firebase. Keď používateľ dokončí autentizáciu, prejde na stránku vytvorenia profilu. Zobrazuje obrázok profilu používateľa z Facebooku.

Tento kód používam na zobrazenie

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")
}

však, Taktiež umožňujem používateľovi vybrať si vlastný profilobrázok pomocou fotoaparátu alebo knižnica fotografií. Keď si užívateľ vyberie svoj obrázok, zobrazí vybratý obrázok na 1 až 2 sekundy a zobrazí späť profilový obrázok na facebooku. To znamená, že vybratý obrázok nemôže nahradiť profilový obrázok na facebooku.

Je to môj kód pre knižnicu fotoaparátov a fotografií

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
}

odpovede:

0 pre odpoveď č. 1

Firebase Authentication urobí fotografiu URL, teda verejné miesto, kde je profilová fotografiapre používateľa. Ak chcete používateľovi umožniť odovzdanie novej profilovej fotografie, musíte nájsť miesto na uloženie fotografie a potom adresu URL vložiť do profilu overenia Firebase.

Jedným z miest na uchovávanie takéhoto profilového obrázka by bolo Firebase Storage. Pozrite si dokumentáciu k ako nahrať obrázok z iOS a potom vygenerovať URL na stiahnutie ktoré ukladáte do profilu používateľa.