dataservice.swift
class DataService - >类数据服务没有初始化程序 static let dataService = DataService() - >数据服务不可能 构造因为它没有可访问的初始化器
class DataService {
static let dataService = DataService()
private var _BASE_REF = FIRDatabase.database().reference()
var fileUrl: String
var BASE_REF: FIRDatabaseReference {
return _BASE_REF
}
var storageRef : FIRStorageReference {
return FIRStorage.storage().reference()
}
func SignUp(username: String, email: String, password: String, data: NSData) {
FIRAuth.auth()?.createUserWithEmail(email, password: password, completion: { (user, error) in
if let error = error {
print(error.localizedDescription)
return
}
let changeRequest = user?.profileChangeRequest()
changeRequest?.displayName = username
changeRequest?.commitChangesWithCompletion({ (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 updated")
}
})
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.login()
})
})
}
}
答案 0 :(得分:0)
导入基金会 导入Firebase 导入FirebaseAuth 导入FirebaseStorage
class DataService {
static let dataService = DataService()
private var _BASE_REF = FIRDatabase.database()。reference() var fileUrl:String
{{1}}
}
答案 1 :(得分:0)
你的fileUrl:字符串要么需要默认值,要么需要在初始化程序中设置。
只需将其值设置为空白字符串“”,并在以后需要时填写。
var fileUrl: String = ""
正确的方法是在初始值设定项中为其赋值,但您可能不知道实例化时的值。所以现在就给它一个空白值。类使用初始值设定项来保证所有属性都具有值,并且该类在创建时完全可以使用。如果您的属性都具有默认值,或者是可选的,则不需要初始值设定项。