IOS Firebase存储文件上载-对象不存在
我正在尝试使用IOS Swift上的Firebase将用户选择的图像文件上载到Firebase存储。 我已经对用户进行了身份验证,所以这不是问题所在。 下面您可以看到我正在尝试使用的视图控制器,但当它尝试上载图像时,我收到一条错误消息,上面说: 对象图像/vesVLmkqS2cCLQTJOjv9CFe8mh22/0524729A-855E-4E63-8C11-50F4C4B1A905不存在 您可以在代码中看到,此路径的中间部分是用户uid,因此我肯定有一个经过身份验证的用户 我之前尝试过简化这个路径来测试像myimage.png这样的值,但没有帮助,我得到了相同的错误 我已经尽力了,请帮助我,因为我在firebase文档中找不到任何相关内容 加载视图时,下面的代码将自动打开图像选择器。如果用户选择图像,我们将其设置为图像视图。当用户单击上载按钮时,控制器尝试将文件上载到firebase存储IOS Firebase存储文件上载-对象不存在,ios,swift,firebase,firebase-storage,Ios,Swift,Firebase,Firebase Storage,我正在尝试使用IOS Swift上的Firebase将用户选择的图像文件上载到Firebase存储。 我已经对用户进行了身份验证,所以这不是问题所在。 下面您可以看到我正在尝试使用的视图控制器,但当它尝试上载图像时,我收到一条错误消息,上面说: 对象图像/vesVLmkqS2cCLQTJOjv9CFe8mh22/0524729A-855E-4E63-8C11-50F4C4B1A905不存在 您可以在代码中看到,此路径的中间部分是用户uid,因此我肯定有一个经过身份验证的用户 我之前尝试过简化这个
import UIKit
import Firebase
class ShareViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
let imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
imagePicker.allowsEditing = false
imagePicker.sourceType = .photoLibrary
present(imagePicker, animated: true, completion: nil)
}
@IBAction func onPictureTapped(_ sender: Any) {
present(imagePicker, animated: true, completion: nil)
}
@IBAction func onUploadClicked(_ sender: Any) {
if let pickedImage = imageView.image, let imageData = UIImagePNGRepresentation(pickedImage) {
let storageRef = Storage().reference()
let imageRef = storageRef.child("images/\(Auth.auth().currentUser!.uid)/\(NSUUID().uuidString)")
imageRef.putData(imageData, metadata: nil) { (metadata, error) in
if error != nil {
NSLog(error!.localizedDescription)
}
self.navigationController?.popToRootViewController(animated: true)
}
}
}
internal func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.contentMode = .scaleAspectFit
imageView.image = pickedImage
}
self.dismiss(animated: true, completion: nil)
}
}
好的,我发现了问题:
// Instead of this:
Storage().reference()
// You need to use this
Storage.storage().reference()
这是荒谬的,没有关于这一点的警告,而且应用程序不会崩溃。非常烦人,我花了至少5个小时才找到好的,我发现了问题:
// Instead of this:
Storage().reference()
// You need to use this
Storage.storage().reference()
这是荒谬的,没有关于这一点的警告,而且应用程序不会崩溃。非常烦人,我花了至少5个小时才找到你能分享你的firebase存储路径吗?firebase存储中现在没有任何内容,它完全是空的。但是我也尝试在根目录中创建一个文件,路径为testimage.jpg,但是我得到了相同的错误。您可以共享您的firebase存储路径吗?firebase存储中现在没有任何内容,它是完全空的。但是我也试着在根目录中创建一个文件,路径为testimage.jpg,但是我得到了同样的错误——多么糟糕的命名。你真可耻,谷歌。应该改名为Storage.default。多么糟糕的命名。你真可耻,谷歌。应改为称为Storage.default。