【问题标题】:'NSData' is not implicitly convertible to 'Data'; did you mean to use 'as' to explicitly convert?'NSData' 不能隐式转换为 'Data';您的意思是使用“as”来显式转换吗?
【发布时间】:2016-12-22 02:44:28
【问题描述】:

我正在使用登录创建一个简单的应用程序,使用 firebase 注册试图实现图像上传功能,但出现以下错误。由于我是 swift 新手,因此我们将不胜感激。

See the screenshot

import Foundation
import Firebase
import FirebaseAuth
import FirebaseStorage
import FirebaseDatabase
let roofRef = FIRDatabase.database().reference()
class DataService {

static let dataService = DataService()

private var _BASE_REF = roofRef

  private var _users_REF = roofRef.child("users")
var BASE_REF: FIRDatabaseReference{

return _BASE_REF

}


var storageRef: FIRStorageReference {

return FIRStorage.storage().reference()

}


var fileUrl: String!



func SignUp(username: String, email: String, Password: String, data: NSData)
{
FIRAuth.auth()?.createUser(withEmail: email, password: Password, completion: { (user, error) in

    if let error = error{

        print(error.localizedDescription)
    }


    let changeRequest = user?.profileChangeRequest()
    changeRequest?.displayName = username
    changeRequest?.commitChanges(completion: { (error) in

        if let error = error {
        print(error.localizedDescription)

            return
        }

    })

    let filePath = "profileImage/\(user!.uid)"
    let metadata = FIRStorageMetadata()
    metadata.contentType = "image/jpeg"

    self.storageRef.child(filePath).putData(data, metadata: metadata, completion: { (metadata, error) in

        if let error = error {

            print("\(error.description)")
            return
        }

        self.fileURL = metadata?.downloadURLs![0].absoluteString
        let changeRequestPhoto = user!.profileChangeRequest()
        changeRequestPhoto.photoURL = NSURL(string: self.fileURL)
        changeRequestPhoto.commitChangesWithCompletion({ (error) in
            if let error = error {
                print(error.localizedDescription)
                return
            } else {

                print("profile update")
            }

            })
        let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        appDelegate.login()

    })
})

}

}

【问题讨论】:

标签: ios swift3 xcode8


【解决方案1】:

尝试使用此代码>>

import Foundation
import Firebase
import FirebaseAuth
import FirebaseStorage
class Datasevice{

    static let datasevice=Datasevice()
    private var _BASE_REF = FIRDatabase.database().reference()
    var BASE_REF:FIRDatabaseReference{
    return _BASE_REF

    }
    var storageRef: FIRStorageReference {

    return FIRStorage.storage().reference()

    }
    var fileUrl:String!



    func SignUp(username:String,email:String,password:String,data:NSData){
        FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: {
        (user,Error)in
            if let Error=Error{
            print(Error.localizedDescription)
                return

            }
            let changeRequest = user!.profileChangeRequest()
            changeRequest.displayName = username    // userName is Gandalf
            changeRequest.commitChanges(){ (error) in
                if let error = error {
                    print(error.localizedDescription)
                    return
                }

        }


        let filePath = "profileImage/\(user!.uid)"
        let metadata = FIRStorageMetadata()
        metadata.contentType="image/jpeg"

            self.storageRef.child(filePath).put(data as Data, metadata: metadata,completion :{(metadata,Error)


                in
                if let Error=Error{
                    print(Error.localizedDescription)
                    return
                }
                self.fileUrl = metadata?.downloadURLs![0].absoluteString
                let changeRequestPhoto = user!.profileChangeRequest()
                changeRequestPhoto.photoURL = NSURL(string: self.fileUrl) as URL?
                changeRequestPhoto.commitChanges(completion: { (error) in
                    if let error = error {
                        print(error.localizedDescription)
                        return
                    } else {

                        print("profile update")
                    }

                })
                let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
                appDelegate.login()

            })


        })

    }

}

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2020-05-30
    相关资源
    最近更新 更多