【问题标题】:Image not uploading to Firebase Storage图片未上传到 Firebase 存储
【发布时间】:2022-01-12 03:20:10
【问题描述】:

在应用上注册时,用户会被记录到 Firebase 身份验证中,但其个人资料图片不会上传到 Firebase 存储。代码编译也很好。

private func persistImageToStorage() {
    
    guard let uid = Auth.auth().currentUser?.uid
    else { return }
    
    let ref = Storage.storage().reference(withPath: uid)
    
    guard let imageData = self.image?.jpegData(compressionQuality: 0.5) else { return }
    
    ref.putData(imageData, metadata: nil) { metadata, err in
        if let err = err {
            self.loginStatusMessage = "Couldn't upload your photo \(err)"
            return
        }
        
        ref.downloadURL { url, err in
            if let err = err {
                self.loginStatusMessage = "Error uploading your photo \(err)"
                return
            }
            
            self.loginStatusMessage = "Photo successfully uploaded!"
            print(url?.absoluteString)
        }
    }
}

搜索了相关问题,没有人收到同样的错误。 Firebase 也已更新到最新版本!

【问题讨论】:

  • “得到同样的错误”——错误是什么?您是否使用调试器查看您的代码是否通过了所有阶段?例如,它是否通过guard 语句实现?它会进入downloadURL 闭包吗?是否点击“无法上传您的照片”行?
  • 实际上没有!我只是使用了断点,它似乎没有让它通过ref.putData。它也从不显示“无法上传您的照片”的消息
  • 它会进入ref.downloadURL 闭包吗?
  • 也没有,也没有“上传照片时出错”的消息
  • 你在哪里打印消息?在 loginStatusMessage didSet?

标签: ios swift firebase firebase-storage


【解决方案1】:

因为我忘记了我在 View 类型的结构中有一个 @State var avatarImage = UIImage(systemName: "person.fill")!,所以它正在拍摄用户选择的图片并且什么都不做,因为代码将另一个 @State var 作为带有信息的图片,上传到Firebase(调试器显示 self.image 正在抛出 nil)。

【讨论】:

  • 如果您回答了自己的问题,请将其标记为已接受的答案。
  • 您好@LirazShakaAmir,不幸的是,该网站直到 48 小时后才允许我按照您的意愿标记它。不知道为什么!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 2020-12-30
  • 2021-06-28
  • 2016-12-24
  • 2020-04-01
相关资源
最近更新 更多