ios - FirebaseStorage 中的图像 url 不存在。, ResponseErrorDomain=com.google.HTTPStatus, ResponseErrorCode=404}?

标签 ios swift firebase firebase-realtime-database

我有将多个图像保存到 firebase 的代码。我更新了我的 pod,之后我不得不更改我的 downloadURL 代码。这样做之后,url 不会出现在数据库中,它的“帖子部分”也不会出现。这个问题似乎类似于 this一。在控制台中,我收到以下错误:

Error Domain=FIRStorageErrorDomain Code=-13010 "Object email@email.com/post/string#.string#.jpg does not exist." UserInfo={object=email@email.com/post/string#.string#.jpg, ResponseBody={

和:

}, bucket=yubipracticearraybasicimg1.appspot.com, data=<7ba2020 2265722 6f72223a 207b020 20202022 636f465 2232034 30342c0a 20202020 226d6573 73616765 223a2022 4e6f420 46f756e 642e2020 436f56c 642066f 7426765 7406f62 6a656374 220a2020 7d0a7d>, data_content_type=application/json; charset=UTF-8, NSLocalizedDescription=Object email@email.com/post/string#.string#.jpg does not exist., ResponseErrorDomain=com.google.HTTPStatus, ResponseErrorCode=404}

这些都是在我按下将数据发送到 firebase 的按钮后发生的。 以下是有问题的代码:

block 1:

storageRef.downloadURL { (url, error) in

       if error != nil {
           print("Failed to download url:", error!)
           return
       }

       let imageUrl = "\(String(describing: url))"
            postRef.child(autoID).setValue(imageUrl)
        }

第 2 部分:

    storageRef.downloadURL { (url, error) in

        if error != nil {
           print("Failed to download url:", error!)
               return
          }

      let imageUrl = "\(String(describing: url))"
//           let value = ["Image\(self.number)": imageUrl]  as [String : Any]
                 let value = [autoID: imageUrl]  as [String : Any]
                     postRef.updateChildValues(value)
                    }

在此先感谢您的帮助!

最佳答案

您可能正在为两个 block 所在的 put 数据方法使用不同的 URL 存储引用。

您可能遇到这样的情况,其中 childStorageRef 与 storageRef 不同:

  childStorageRef.putData(uploadData, metadata: nil) { (metadata, err) in
    storageRef.downloadURL { (url, error) in

           if error != nil {
               print("Failed to download url:", error!)
               return
           }

           let imageUrl = "\(String(describing: url))"
                postRef.child(autoID).setValue(imageUrl)
            }
       }

将引用更改为此:

storageRef.putData(uploadData, metadata: nil) { (metadata, err) in
    storageRef.downloadURL { (url, error) in

       if error != nil {
           print("Failed to download url:", error!)
           return
       }

       let imageUrl = "\(String(describing: url))"
            postRef.child(autoID).setValue(imageUrl)
        }
   }

block 2 也是如此。希望这对您有所帮助!

关于ios - FirebaseStorage 中的图像 url 不存在。, ResponseErrorDomain=com.google.HTTPStatus, ResponseErrorCode=404}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52007881/

相关文章:

iphone - 如何在 iPhone 中重置倒计时?

ios - 如何在表格 View 中添加三个表格 View 单元格作为 subview ?

ios - 在 iOS/Swift 中以编程方式设置 View 后 RevealViewController 不工作

java - 当用户创建帐户时,它会进入主页 Activity 而不是登录 Activity ,如何避免这种情况?

objective-c - UITableView 数据源问题。当 UITableView :cellForRowAtIndexPath: is called 时,我的数据数组突然为空

ios - 向 coredata 添加一个新实体——我还能使用轻量级迁移吗?

objective-c - 创建数据库文件(如果不存在)

xcode - 快速从另一个类(class)获取游戏中心的分数

android - Firebase Database Android - 来自多个 ValueEventListeners 的快照检索顺序

ios - 如何根据日期(部分)对 UITableView(聊天气泡)中的消息进行分组?