App mit einem Fahrer und einem Treiber. Wenn Sie sich als Fahrer registrieren und dann eine Fahrt vom Fahrer anfordern, stürzt die App ab. Aber wenn der Fahrer ein Konto hat oder sich anmeldet und abmeldet und sich dann in der App anmeldet, kann der Fahrer eine Fahrt anfordern, ohne die App zu stürzen.App stürzt nach der Anmeldung und eine Anfrage - swift
Anmelden Aktion
@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)
}
}
})
}
Anfrage Ryde
// ... 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
** Fehler bei der Anwendung abstürzt - **
fatal error: unexpectedly found nil while unwrapping an Optional value
Ich habe versucht, in der login() Funktion nach der Anmeldung setzen(), aber nichts scheint zu funktionieren.
Anmeldung
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)
}
})
}
Jede Hilfe willkommen wäre stark
@Mungbeans hilft Ja, ich habe, aber ich verstehe nicht, wenn ich es bin der Anmeldung, Dann sollte sich der Benutzer entsprechend meinem Code anmelden, ist es aber nicht. – LizG
Immer noch kein Ergebnis - Änderungsanforderung eingeben, aber immer noch Absturz bei: currUsername = (FIRAuth.auth()?. CurrentUser? .displayName)! - Edited signUp() in Post – LizG
kann jemand Hilfe anbieten? – LizG