Итак, я успешно сохранил электронную почту пользователя в своей базе данных Firebase, но я хочу также сохранить состояние для этого конкретного пользователя в другом представлении, когда они нажимают сохранить. Это тестовое приложение, которое позволяет мне с головой использовать базу данных Firebase и аутентификацию пользователя.
Итак, прямо сейчас, когда пользователь регистрируется в приложении, он регистрируется в базе данных.
class SignupViewController: UIViewController {
let ref = Database.database().reference().root
@IBOutlet weak var firstNameEntryField: UITextField!
@IBOutlet weak var lastNameEntryField: UITextField!
@IBOutlet weak var emailEntryField: UITextField!
@IBOutlet weak var passwordEntryField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func signupPressed(_ sender: UIButton) {
Auth.auth().createUser(withEmail: emailEntryField.text!, password: passwordEntryField.text!) { (user, error) in
if error == nil {
//Show SVProgressHUD
SVProgressHUD.show()
//save User to Database
self.ref.child("users").child((user?.user.uid)!).setValue(self.emailEntryField.text!)
//Dismiss SVProgressHUD
SVProgressHUD.dismiss()
//move to info view controller
self.performSegue(withIdentifier: "signupToInfo", sender: self)
} else {
print("Signup Unsuccessul")
let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
}
}
}
}
![enter image description here](https://i.stack.imgur.com/FAkIl.png)
И с другой стороны, я пытаюсь сохранить логическое состояние в профиле текущего пользователя после регистрации, но я знаю, что, скорее всего, я делаю это неправильно. Как вы можете видеть прямо сейчас, он сохраняет только один экземпляр, поэтому, если я зарегистрирую другого пользователя и сохраню логическое значение «stylist» как true, оно перезапишет текущее ложное состояние. Но я хочу, чтобы каждый зарегистрированный пользователь имел логическое состояние стилиста, связанное с его учетной записью.
![enter image description here](https://i.stack.imgur.com/qYMh6.png)
class InfoViewController: UIViewController {
let ref = Database.database().reference()
var isStylist : Bool = false
@IBAction func stylistSwitch(_ sender: UISwitch) {
if isStylist == false {
isStylist = true
print(isStylist)
} else {
isStylist = false
print(isStylist)
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func saveUserProfile(_ sender: UIButton) {
if Auth.auth().currentUser != nil {
//show SVProgressHUD
SVProgressHUD.show()
//save Stylist state to Database
self.ref.child("stylists").setValue(self.isStylist)
//dismiss SVProgressHUD
SVProgressHUD.dismiss()
//Segue to ProfileViewController
performSegue(withIdentifier: "infoToProfile", sender: self)
} else {
print("Error")
}
}
}
Буду признателен за любую помощь, или если у кого-то есть ссылки на хорошие ресурсы. Спасибо.