Обычно мы проверяем, вошел ли пользователь в систему или нет так:
let user = Auth.auth().currentUser
if user != nil {
// user is logged in
} else {
// user is logged out
}
Это не работает, потому что в моем случае пользователь никогда не nil
. Всегда Auth.auth().currentUser
возвращает действительного пользователя. Я пробовал также addStateDidChangeListener
, но пользователь никогда не становится nil
. Даже когда я выхожу или сеанс истек. По истечении сеанса идентификатор пользователя остается действительным (не nil
), хотя прослушиватели-наблюдатели больше не выполняются.
Я много раз гуглял на эту тему, но все ответы, которые я нашел, - это два вышеупомянутых решения.
Я изменил правила firebase с прав на чтение / запись на:
"rules": {
".read": "auth != null",
".write": "auth != null"
}
Но без удачи.