使用騎手和驅動程序的應用程序。當作爲騎手註冊帳戶,然後向司機請求搭車時,應用程序崩潰。但是,如果騎手擁有帳戶或註冊並註銷並登錄到應用程序,騎手可以請求騎行而不會崩潰應用程序。應用程序在註冊並提出請求後崩潰 - swift
會員註冊行動
@IBAction func signUpAction(_ sender: AnyObject) {
let usernameTxt = usersnameTextField.text
let cellTxt = cell.text
if let email = emailTextField.text, let password = passwordTextField.text,
(email.characters.count > 0 && password.characters.count > 0 && (usernameTxt?.characters.count)! > 0 && (cellTxt?.characters.count)! > 0) {
let data = UIImageJPEGRepresentation(self.userImageView.image!, 0.8)
rAuthService.instance.signUp(email, usersname: usernameTxt!, password: password, cell: cellTxt!, data: data!) { (error, data) in
if error != nil {
self.alertTheUser(title: "Login Error", message: "Unable to Create User")
//
} else if FIRAuth.auth()!.currentUser != nil {
rRydeHandler.Instance.rider = self.emailTextField.text!
let storyboard = UIStoryboard(name: "Rider", bundle: nil)
let tabBar = storyboard.instantiateViewController(withIdentifier: "Home") as! UITabBarController
self.present(tabBar, animated: true, completion: nil)
self.performSegue(withIdentifier: self.RIDER_SEGUE, sender: nil)
}
}
} else {
self.alertTheUser(title: "Email and Password Required", message: "Please enter a valid email & password")
}
} // signUpAction func
rAuthService.instance.signUp-- EDITED
// 1 ... Creating the User (Sign Up)
func signUp(_ email: String, usersname: String, password: String, cell: String, data: Data!, loginHandler: LoginHandler?) {
FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: { (user, error) in
if error != nil {
// Create a change request
let changeRequest = FIRAuth.auth()?.currentUser?.profileChangeRequest(); changeRequest?.displayName = usersname
// Commit profile changes to server
changeRequest?.commitChanges() { (error) in
if error != nil {
return
}
}
// Show error to user
self.handleFirebaseErrors(err: error as! NSError, loginHandler: loginHandler)
} else { // success creating user
if user?.uid != nil { // if there is a valid user id
// Store user to database
self.setUserInfo(user, usersname: usersname, email: email, password: password, cell: cell, data: data!)
// Log In the user
self.login(email: email, password: password, loginHandler: loginHandler)
}
}
})
}
請求萊德
// ... Request Ryde
func requestRyde(latitude: Double, longitude: Double, destLat: Double, destLong: Double, currentAddress: String, destAddress: String) {
let ref = FIRDatabase.database().reference()
currUserid = (FIRAuth.auth()?.currentUser?.uid)!
currUsername = (FIRAuth.auth()?.currentUser?.displayName)!
let newRequest = RideRequest(userId: currUserid, username: currUsername, latitude: latitude, longitude: longitude, destLat: destLat, destLong: destLong, currentAddress: currentAddress, destAddress: destAddress, active: true)
ref.child("drivers").child("RideRequests").child(currUsername).setValue(newRequest.toAnyObject())
} // request ryde func
**錯誤,當應用程序崩潰 - **
fatal error: unexpectedly found nil while unwrapping an Optional value
我試過)將在login()函數註冊(後但似乎沒有任何工作。
登錄
func login(email: String, password: String, loginHandler: LoginHandler?) {
FIRAuth.auth()?.signIn(withEmail: email, password: password, completion: { (user, error) in
if error != nil {
self.handleFirebaseErrors(err: error as! NSError, loginHandler: loginHandler)
} else {
loginHandler?(nil, nil)
}
})
}
任何幫助,將不勝感激
@Mungbeans是的,我沒有,但我不,如果我簽約理解,它那麼應該根據我的代碼登錄用戶,但事實並非如此。 – LizG
仍然沒有結果 - 放入更改請求,但仍然遇到:currUsername =(FIRAuth.auth()?。currentUser?.displayName)! - 在 – LizG
後編輯signUp()任何人都可以提供任何幫助? – LizG