Generierte Firebase uid an neunen VC übergeben durch Button klick - geht nicht.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Generierte Firebase uid an neunen VC übergeben durch Button klick - geht nicht.

    Hallo zusammen,

    Ich habe das Problem wenn ich in meinem Registrierungs View Controller bin und versuche die UID zu übergeben, wird diese nicht übernommen.

    Den usernamen sowie die email wird bereits richtig übergeben. Hier mal ein ausschnitt wie ich Daten übergebe.

    Quellcode

    1. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    2. if(segue.identifier == "RegisterToImageIdentefierVC"){
    3. let displayVC = segue.destination as! UplaodFirstImagesViewController
    4. displayVC.username = usernameTF.text
    5. displayVC.email = emailTF.text
    6. displayVC.uid = uidd
    7. }

    und hier einmal die Methode die ausgeführt wenn ich den Button drücke.



    Quellcode

    1. @IBAction func regisButtonTapped(_ sender: UIButton) {
    2. self.performSegue(withIdentifier: "RegisterToImageIdentefierVC", sender: self)
    3. Auth.auth().createUser(withEmail: emailTF.text!, password: passwordTF.text!) { [self] (authResult, error) in
    4. if let err = error{
    5. print(err.localizedDescription)
    6. return
    7. }
    8. guard let newUser = authResult?.user else { return }
    9. uid = newUser.uid
    10. uidd = uid
    11. self.username = self.usernameTF.text!
    12. self.email = self.emailTF.text!
    13. self.phoneNumber = self.phonenumberTF.text!
    14. let displayVC : UplaodFirstImagesViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "upload_picture_vc") as! UplaodFirstImagesViewController
    15. displayVC.uid = uidd
    16. self.present(displayVC, animated: true) {
    17. displayVC.uid = self.uidd
    18. }
    19. let ref = Database.database().reference().child("users").child(uid)
    20. ref.setValue(["username" : self.usernameTF.text!, "email" : self.emailTF.text!, "phonenumber" : self.phonenumberTF.text!] )
    21. print("USERNAME : " + self.username)
    22. print("EMAIL : " + self.email)
    23. print("UID : " + self.uidd)
    24. print("PHONENUMBER : " + self.phoneNumber)
    25. }
    26. }
    Alles anzeigen
    In der Konsole werden mir alle Daten richtig angezeigt, im nächsten VC sind alle Werte vorhaben, außer die uid bzw. uidd.
    Kann mir bitte jemand sagen woran das liegen könnte ?

    Wenn ihr noch mehr informationen braucht bitte einfach bescheid geben.
  • Ich habe von FireBase keine Ahnung, aber die Benutzerregistrierung muss doch asynchron laufen, oder? Wie soll denn dann beim Aufruf der Segue schon eine UID vorliegen? Nach meinem Verständnis müsstest Du die Segue im Closure nach dem createUser aufrufen … also bei der print-Ausgabe.

    Insofern wundert mich Deine Aussage „in der Konsole werden mir alle Daten richtig angezeigt“: Hast Du Dir die UID mal in der prepare-Methode ausgeben lassen? Die müsste bei Dir NULL sein - sofern ich den Ablauf der Benutzerregistrierung richtig verstanden habe.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes ()