首页 > 解决方案 > 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)


                }
            }

            })
        }
}

标签: swiftxcodegoogle-cloud-firestore

解决方案


该错误准确地告诉您您尝试在不受支持NSURL的文档中保存类型时出了什么问题。Firestore因此,将 url 转换为字符串,然后将其保存在 Firestore 中,如下所示:

db.collection("Users").document(uid).setData(["AccountTypeImageURL": url2.absoluteString],merge: true)

推荐阅读