После того, как пользователь зарегистрировался и вышел из системы, когда он снова пытается использовать приложение, я хочу: если пользователь существует, я не хочу снова выполнять аутентификацию по телефону, это должно произойти только один раз, когда он регистрируется, если Пользователь существует в базе данных. Я хочу просто ввести его пароль и войти в систему.
Когда пользователь проходит аутентификацию по номеру телефона, пароль не используется. Аутентификация производится с использованием кода подтверждения, отправленного с помощью SMS. Поэтому, если пользователь выходит из системы, он просто не может войти в систему, используя пароль. Он может войти снова, используя номер телефона или любого другого провайдера.
Но проблема в том, как я проверю, зарегистрирован ли пользователь телефона в Firebase. Если пользователь зарегистрирован, я хочу показать раскладку для ввода пароля, а если пользователь не зарегистрирован, я хочу показать OtpView
, чтобы пользователь мог выполнить аутентификацию-регистрацию телефона.
Вы можете просто проверить свою базу данных по номеру телефона, чтобы увидеть, если у пользователя уже есть учетная запись. Такой запрос может помочь:
db.child("users").orderByChild("phoneNumber").equalTo("+16505553434");
Если вы получите результат, это означает, что пользователи существуют. Чтобы позволить пользователю «войти в систему с паролем», вам необходимо включить этот вид аутентификации. Вы можете сделать это очень легко в консоли Firebase. Но имейте в виду, что это еще один тип аутентификации, который нельзя сочетать с первым. Проверьте документы относительно Аутентификация с Firebase, используя основанный на пароле . Таким образом, вы можете войти в систему с номером телефона или , указав адрес электронной почты и пароль. Вы не можете войти с помощью номера телефона и пароля.
Когда пользователь вышел из системы, FirebaseAuth.getInstance (). GetCurrentUser () имеет значение null, поэтому я не могу его использовать. Что я могу сделать, чтобы проверить, зарегистрирован ли пользователь или нет?
Когда пользователь выходит из системы, объект FirebaseUser
имеет значение null. Нет способа получить данные из этого объекта. Все, что вы можете сделать, чтобы запросить базу данных.