FirebaseStorage中的图片网址不存在。,ResponseErrorDomain = com.google.HTTPStatus,ResponseErrorCode = 404}?

时间:2018-08-24 15:48:29

标签: ios swift firebase firebase-realtime-database

我有将多个图像保存到Firebase中的代码。我更新了Pod,此后必须更改我的downloadURL代码。这样做之后,URL将不会显示在数据库中,它的“发布”部分也不会显示。这个问题似乎与this相似。在控制台中,出现以下错误:

  

Error Domain = FIRStorageErrorDomain代码= -13010“对象   email@email.com/post/string#.string#.jpg不存在。”   UserInfo={object=email@email.com/post/string#.string#.jpg,   ResponseBody = {

并且:

  

},bucket = yubipracticearraybasicimg1.appspot.com,数据= <7ba2020 2265722 6f72223a 207b020 20202022 636f465 2232034 30342c0a 20202020 226d6573 73616765 223a2022 4e6f420 46f756e 642e2020 436f56c 642af7a_76a_76a_76a_76a_a76_a76_76a_a7622 charset = UTF-8,NSLocalizedDescription =对象email@email.com/post/string#.string#.jpg不存在。,ResponseErrorDomain = com.google.HTTPStatus,ResponseErrorCode = 404}

这两种情况都是在我按下将数据发送到Firebase的按钮后发生的。 下面是有问题的代码:

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

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可能在两个数据块所在的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)
        }
   }

与第2块相同。希望这会有所帮助!