Ich bin derzeit versucht, die Benutzer Informationen zu Firebase Datenbank zu schreiben, nachdem die Benutzerfunktion erstellen mit FIRAuth.auth()?.createUser
Schreiben von Benutzerdaten auf Firebase Nach Erstellen eines neuen Benutzerkontos
Unter dieser Funktion versuche ich, wie diese die Daten in die Datenbank einfügen :
FIRAuth.auth()?.createUser(withEmail: self.emailField.text!, password: self.passwordField.text!) { (user, error) in
if error == nil
{
let email = self.emailField.text
let firstName = self.firstnameField.text
let lastName = self.lastnameField.text
self.ref.child((user?.uid)!).setValue(["firstName": firstName,"lastName": lastName,"email": email])
self.performSegue(withIdentifier: "createaccountLandingPage", sender: sender)
}
Es kann auch wichtig sein, unter meiner Ansicht-Controller zu erwähnen, dass ich den Verweis auf die Datenbank zu erstellen:
var ref = FIRDatabase.database().reference().child("users") //root database
Meine Steckdosen sind alle richtig, aber ich bin immer diese Fehlermeldung:
Thread 1: signal SIGABRT
Irgendwelche Vorschläge auf, was ich falsch tun kann?
EDIT ** Hier ist mein Code in der Registrierung View-Controller
import UIKit
import Firebase
import FirebaseDatabase
class CreateAccountViewController: UIViewController {
var ref = FIRDatabase.database().reference().child("users") //root database
@IBOutlet weak var firstnameField: UITextField!
@IBOutlet weak var lastnameField: UITextField!
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBOutlet weak var confirmpasswordField: UITextField!
@IBOutlet weak var createAccountButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
if (FIRAuth.auth()?.currentUser) != nil
{
}
else
{
}
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func createAccountAction(_ sender: AnyObject)
{
if self.confirmpasswordField.text != self.passwordField.text
{
}
else
{
FIRAuth.auth()?.createUser(withEmail: self.emailField.text!, password: self.passwordField.text!) { (user, error) in
if error == nil
{
let user = FIRAuth.auth()?.currentUser.uid
let email = self.emailField.text
let firstName = self.firstnameField.text
let lastName = self.lastnameField.text
self.ref.child("users").child("\(user)").setValue(["firstName": firstName,"lastName": lastName,"email": email])
self.performSegue(withIdentifier: "createaccountLandingPage", sender: sender)
}
else
{
let alertController = UIAlertController(title: "Oops!", message: error?.localizedDescription, preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
}
}
}
}
EDIT *** Hier ist ein Screenshot des Fehlers
EDIT **** hier ist ein Screenshot von meinem podfile und wenn es aktualisiert wird, erhalte ich keine Fehler im Terminal.
EDIT ***** Screenshots der Konsole.
1stScreenshotConsole 2ndScreenshotConsole
Erhalten Sie den gleichen Fehler, wenn Sie das self.performegue Zeug herausnehmen? –
@CyrilIvarGarcia yeah:/aber wenn ich den Datenbankkram raushole, bekomme ich keinen Fehler .. sollte ich eine separate Funktion erstellen, um es vielleicht zu tun? (das ist Sarahs Freund, wir arbeiten gemeinsam daran) –
Okay ich sehe, ich bin neugierig zu sehen, wo du den Code blockierst. –