gpt4 book ai didi

swift - 在 Swift 中使用 Firebase 存储引用后执行函数的问题

转载 作者:行者123 更新时间:2023-11-28 15:27:33 28 4
gpt4 key购买 nike

我正在使用以下代码在 Firebase 中更新个人资料图片:

    func saveProfileImage(_ userUID: String, _ completion: @escaping (Error?) -> Void) {
let resizedImage = image.resized()
let imageData = UIImageJPEGRepresentation(resizedImage, 1.0)

ref = StorageReference.profileImages.reference().child(userUID)
downloadLink = ref.description

ref.put(imageData!, metadata: nil) {
(metaData, error) in
completion(error)
}
updateProfilePic(userUID)
}

updateProfilePic 是一个用于触发 childChanged 的​​函数,因此用户可以下载新的个人资料图片。它一直没有工作,我认为这是因为它在 StorageReference 完成更新之前被调用。有什么办法可以保证Reference完成后才调用该函数?

最佳答案

对于仅在完成 block 运行时才需要调用的代码,您应该将该代码放在完成 block 中,因此更改:

ref.put(imageData!, metadata: nil) {
(metaData, error) in
completion(error)
}
updateProfilePic(userUID)

    ref.put(imageData!, metadata: nil) {
(metaData, error) in

guard error == nil else {
print("Error from adding to FIRDatabase: \(error)")
return
}

self.updateProfilePic(userUID)
}

如果updateProfilePic必须总是在完成 block 成功后调用

关于swift - 在 Swift 中使用 Firebase 存储引用后执行函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45024121/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com