2016-06-07 29 views
12

görüntüleriyle birlikte veritabanında görüntülerini bu soruya çevrimiçi olarak bulabiliyorlardı, ancak çok yeni bir sorun yaşadım.Referans Firebase Storageebase kullanıcıları, Firebase Storage Swift

Kullanıcıların uygulamasında oturum açtıklarında ve profillerinde 4-5 resim seçtikleri zaman, bu görüntüleri Firebase Storage'da nasıl depolarım ve bu görüntüleri Firebase Veritabanında bu kullanıcıya nasıl gönderirim?

Teşekkür

cevap

13

Sen Firebase Depolama ilk yükleyin ve ardından

let storage = FIRStorage.storage() 
let data: NSData = myImageData 
let userProfilePic = storageRef.child("users/abc/profileimage.jpg") 

let uploadTask = userProfilePic.putData(data, metadata: nil) { metadata, error in 
    if (error != nil) { 
    // Uh-oh, an error occurred! 
    } else { 
    let downloadURL = metadata!.downloadURL 
    // store downloadURL in db 
    storeUserProfileInDB(downloadURL) 
    } 
} 

func storeUserProfileInDB(profileImgUrl: NSURL) { 
    let ref = FIRDatabase.database().reference() 
    let key = ref.child("users").childByAutoId().key 

    let dictionaryUser = [ "userName" : name! , 
          "imageUrl" : profileImgUrl.absoluteString, 
          ] 

    let childUpdates = ["https://stackoverflow.com/users/\(key)": dictionaryTodo] 
    ref.updateChildValues(childUpdates, withCompletionBlock: { (error, ref) -> Void in 
     //save 
    }) 

} 
+0

üzgünüm cevap çok uzun sürdü Firebase Veritabanında url depolamak ama bu örnek çok yardımcı oldu! teşekkürler – JustinM

+0

ve bu önemli ipucu başka bir QA'ya not edin .. https://stackoverflow.com/a/45395260/294884 – Fattie