swift - Завершение приложения из-за необработанного исключения '(child :) Должно быть непустой строкой и не содержать'. ' '#' '$' '[' или ']' '

-3
@IBAction func NextButton(_ sender: Any) {


    //self.nextButton.isEnabled = false


        if emailTF.text != "" && passwordTF.text != "" {


            AuthProvider.Instance.registerButton(withEmail: emailTF.text!, password: passwordTF.text!, loginHandler: { (message) in

                if message != nil {
                    self.alertTheUser(title:"Problem With Authentication", message: message!);

                    self.nextButton.isEnabled = true


                } else {



                    let userID = FIRAuth.auth()?.currentUser?.uid

                    let userEmail = self.emailTF.text!
                    let userPassword = self.passwordTF.text!



                    //self.ref.child("UserEmails").child(userEmail).setValue(["UID": userID, "Email": userEmail,"Password": userPassword])


// app does not crash when I run the below reference to database.


                    self.ref.child("Users").child(userID!).setValue(["UID": userID,"Email":userEmail,"Password": userPassword])

// app crashes when I run the below reference to database.

                    self.ref.child("Email").child(userEmail).setValue(["UID": userID,"Email": userEmail,"Password": userPassword])

                    //self.nextButton.isEnabled = true


                    self.performSegue(withIdentifier: self.to_Select_Account_Segue, sender: nil);
                                       }

Работа приложения штрафа при запуске

// app does not crash when I run the below reference to database.
                        self.ref.child("Users").child(userID!).setValue(["UID": userID,"Email":userEmail,"Password": userPassword])

Хотя когда я запускаю этот код, он падает?

// app crashes when I run the below reference to database.
                        self.ref.child("Email").child(userEmail).setValue(["UID": userID,"Email": userEmail,"Password": userPassword])
  • 0
    Вы должны включить также некоторые пояснения к своему вопросу, а не только код
Теги:
database
firebase
xcode
firebase-authentication

1 ответ

1
Лучший ответ

Вы не можете создать дочерние узлы в Firebase database с символом @. .childByAutoId этого используйте .childByAutoId или uid.

Вы должны создать пользовательский узел следующим образом:

static var refToUsersNode = FIRDatabase.database().reference(withPath: "MainDataBase/users")

// MARK: - Create user after registration
static func create(with login: String) {
  let loggedInUser = self.getCurrentUser()
  let currentDate = Date()
  let newUser = UserItem(uid: loggedInUser.uid, email: loggedInUser.email!,
                         login: login, createdDate: String(describing: currentDate))

  // Create a child path with a key set to the uid underneath the "users" node
  let refToNewUser = refToUsersNode.child(loggedInUser.uid)
  refToNewUser.setValue(newUser.toAnyObject())
}

static func getCurrentUser() -> FIRUser {
  return (FIRAuth.auth()?.currentUser)!
}

Надеюсь, поможет

  • 0
    в моем коде нет символа @? @vlad pulichev Разница в том, когда я помещаю child. ("users"). child. (userID!) это работает, хотя когда я помещаю child ("users"). child (userEmail это не работает, я просто хотел бы знать, почему самым простым способом
  • 0
    @ benpalmer661 У вас есть .child (userEmail)
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню