swift 'FIRInvalidArgumentException',原因:'不支持的类型:NSURL(在字段 AccountTypeImageURL 中找到)'

4 xcode swift google-cloud-firestore

当我从手机上传图片时,应用程序崩溃并出现错误

'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)


                }
            }

            })
        }
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*erj 5

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

db.collection("Users").document(uid).setData(["AccountTypeImageURL": url2.absoluteString],merge: true)
Run Code Online (Sandbox Code Playgroud)