Answer the question
In order to leave comments, you need to log in
How to add a user to Firebase?
Tell me why the user is not added to the database? user login from already created account produced
rule in firebase
{
"rules": {
".read": true,
".write": true
}
}
//
// AuthViewController.swift
// motoRider
//
// Created by Николай on 13.10.2020.
// Copyright © 2020 Nikolay Fokin. All rights reserved.
//
import UIKit
import Firebase
import FirebaseAuth
import FirebaseDatabase
class AuthViewController: UIViewController {
var signup:Bool = true{
willSet{
if newValue{
titleLabel.text = "Регистрация"
nameField.isHidden = false
enterButton.setTitle("Войти", for: .normal)
}else{
titleLabel.text = "Вход"
nameField.isHidden = true
enterButton.setTitle("Регистрация", for: .normal)
}
}
}
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var nameField: UITextField!
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBOutlet weak var enterButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
nameField.delegate = self
emailField.delegate = self
passwordField.delegate = self
}
@IBAction func switchLogin(_ sender: UIButton) {
signup = !signup
}
func showAlert(){
let alert = UIAlertController(title: "Ошибка", message: "Заполните все поля!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
present(alert, animated: true, completion: nil)
}
}
extension AuthViewController:UITextFieldDelegate{
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let name = nameField.text!
let email = emailField.text!
let password = passwordField.text!
if (signup){
if (!name.isEmpty && !email.isEmpty && !password.isEmpty){
Auth.auth().createUser(withEmail: email, password: password) { result, error in
if error == nil{
if let result = result{
print(result.user.uid)
let ref = Database.database().reference().child("users")
ref.child(result.user.uid).updateChildValues(["name" : name,"email" : email])
self.dismiss(animated: true, completion: nil)
self.navigationController?.popViewController(animated: true)
}
}
}
}else{
self.showAlert()
print("2")
}
}else{
if (!email.isEmpty && !password.isEmpty){
Auth.auth().signIn(withEmail: email, password: password) { (result, error) in
if error == nil{
self.dismiss(animated: true, completion: nil)
}
}
} else{
self.showAlert()
}
}
return true
}
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question