У меня получается зарегистрировать пользователя и войти в аккаунт,но в консоли firebase в разделе Authentication пишет:“В этом проекте пока нет ни одного пользователя”.Как такое может быть?
Как посмотреть таблицу пользователей firebase?
Как вы это поняли, если в консоли Firebase пусто? Может у вас что-то напутано с логикой и пускает без создания аккаунта?
Auth.auth().signIn(withEmail: email!, password: password!) {[weak self] (user, error) in
if error != nil{
let alert = UIAlertController(title: "Оповещение", message: "Произошла ошибка", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .default, handler: { _ in
NSLog("The \"OK\" alert occured.")
}))
self?.present(alert, animated: true, completion: nil)
return
}
if user != nil {
self?.performSegue(withIdentifier: "SignSeg", sender: nil)
return
}
else{
let alert = UIAlertController(title: "Оповещение", message: "Пользовател не найден", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .default, handler: { _ in
NSLog("The \"OK\" alert occured.")
}))
self?.present(alert, animated: true, completion: nil)
}
такой код
Ну код вроде норм, но я, например, просто проверяю ошибку и если их нет, то сразу можно пускать дальше
if error != nil {
...
return
} else {
self?.performSegue(withIdentifier: "SignSeg", sender: nil)
}
Проверьте весь ваш код на этом контроллере на наличие лишнего метода performSegue
.
В AppDelegate
конфигурировали базу?
Анонимный вход в консоли отключен?
Если в консоли нет юзера, значит вы его не создали. Остальное надо разбираться.
Что значит конфигурировать базу?Может я как-то плохо связал приложение с firebase?Ошибок в консоли нет
В AppDelegate в методе didFinishLaunchingWithOptions
обязательна строка FirebaseApp.configure()
Есть такая.Просто по нажатию на кнопку переход на страницу для зарегистрированных пользователей не осуществляется
Это мало что говорит постороннему наблюдателю… Опишите полностью, где проблема.
Повторите привязку приложения к БД.
Создание пользователей происходит в модуле Authentication, который ни как не связан с правами на доступ к БД.
ну у меня есть ViewController на который можно попасть только зарегестрированным пользователям,у меня получается зарегистророваться и войти в аккаунт но в консоли пользователей я я не вижу
В консоли слева выбрать Authentication, потом в большом поле правее сверху будет несколько вариантов - пользователи, способ входа и тп.
Зарегистрированные пользователи как раз в первой вкладке и будут отображаться. А во второй - способ входа - и надо указать доступные способы
Если там так написано, то ни одного пользователя не создано! Проблема на вашей стороне.
Ну и главный вопрос: а где код создания юзера? То что вы выложили - это метод входа… )))
Метод создания .createUser
…
@IBAction func registration(_ sender: Any) {
guard let REmail = RegisterEmail.text,let RPassword = RegisterPassword.text,let Password2 = RePassword.text, REmail != "",RPassword != "",Password2 != "" else{
let alert = UIAlertController(title: "Оповещение", message: "Имеется пустое поле", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .default, handler: { _ in
NSLog("The \"OK\" alert occured.")
}))
self.present(alert, animated: true, completion: nil)
return
}
if RPassword == Password2{
Auth.auth().createUser(withEmail: REmail, password: Password2) {[weak self] (user, error) in
if error == nil{
if user != nil{
self?.performSegue(withIdentifier: "RegSeg", sender: nil)
}
}
}
}
else{
let alert = UIAlertController(title: "Оповещение", message: "Пароли не совпадают", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .default, handler: { _ in
NSLog("The \"OK\" alert occured.")
}))
self.present(alert, animated: true, completion: nil)
}
}
в этом методе
А дебагером смотрел выполняется метод “Auth.auth().createUser”?
- Названия свойств с большой буквы плохой стиль
- фигурные скобки тоже лучше отодвигать от текста одним пробелом