swift - swift 'FIRInvalidArgumentException',原因:'不支持的类型:NSURL(在字段 AccountTypeImageURL 中找到)'
问题描述
当我从手机上传图片时,应用程序崩溃并出现错误
'FIRInvalidArgumentException',原因:'不支持的类型:NSURL(在字段 AccountTypeImageURL 中找到)'
这是我的包含相关代码的函数
func submitButtonADD(){
let imageName = NSUUID().uuidString
let storageRef = Storage.storage().reference().child("Account Type Images").child("\(imageName)png")
let sRef = Storage.storage().reference().child("Account Type Images").child("\(imageName)png")
guard let uid = Auth.auth().currentUser?.uid else { return }
if let uploadData = UIImagePNGRepresentation(self.profileImageView.image!) {
storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if let error = error {
print(error)
return
}
sRef.downloadURL { url2, error in
if let error = error {
print(error)
} else {
// Get the download URL for 'images/stars.jpg'
let db = Firestore.firestore()
db.collection("Users").document(uid).setData(["AccountTypeImageURL": url2],merge: true)
}
}
})
}
}
解决方案
该错误准确地告诉您您尝试在不受支持NSURL
的文档中保存类型时出了什么问题。Firestore
因此,将 url 转换为字符串,然后将其保存在 Firestore 中,如下所示:
db.collection("Users").document(uid).setData(["AccountTypeImageURL": url2.absoluteString],merge: true)
推荐阅读
- python - Python 将回车视为换行符。我能做些什么呢?
- javascript - 比较 2 个对象数组中的特定键
- c# - 如何使用 Prism.Forms 框架从普通页面导航到 MasterDetailPage?
- deployment - 为什么在 minikube 中正确部署服务时,应用程序部署状态为“Available:0”?
- html - 如何在有课程的 td 中获取内容?
- python - Tensorflow toco 工具将 Conv2D 转换为 DepthwiseConv2DNative,但简化图不会产生与原始图相同的结果
- c++ - 为什么现代 C++ 仍然使用 int argc, char** argv 保留旧的 C 风格原型
- r - 在编写 R 函数时使用多个空参数的最佳实践
- firebase - 将 Firebase 帐号与 G Suite 帐号同步
- python - 运行 Flask App 时出现 VS Code 错误