Телефон Firebase проверен - PullRequest
       1

Телефон Firebase проверен

1 голос
/ 12 октября 2019

Есть ли в Firebase метод, которым я могу позвонить, чтобы проверить, подтвердил ли пользователь номер телефона? У меня уже все работает правильно (пользователь вводит код страны / номер телефона, автоматически получает введенный OTP-код и начинает соответствующую деятельность), но я хотел бы проверить, подтвердил ли пользователь номер телефона, на случай, если он не хочет, я хочузапретить ему доступ к определенным действиям.

Для электронной почты есть isEmailVerified(), но для проверки по телефону есть только getPhoneNumber метод.

Ответы [ 3 ]

0 голосов
/ 12 октября 2019

Вы можете проверить, является ли идентификатор пользователя или номер телефона нулевым, -

FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

if(firebaseUser.getUid() == null || firebaseUser.getPhoneNumber() == null){
    // User is not logged in
}

Отредактировано

Если вы хотите, чтобы ваш пользователь снова вошел в систему с подтверждением телефона, вы можетевыйдите из системы с пользователем -

if(firebaseUser.getUid() != null){
     // User is logged in
     FirebaseAuth.getInstance().signOut();
}
0 голосов
/ 13 октября 2019

Я не уверен насчет потока вашего приложения, но из того, что я понимаю: Пользователи могут использовать ваше приложение без проверки подлинности. Однако вы хотите, чтобы неаутентифицированные пользователи имели доступ только к ограниченному количеству функций .

. Вы упомянули в комментариях, что пользователи должны проверять свой номер телефона при каждой новой установке приложения, независимо от предыдущихиспользовать. Таким образом, вы можете использовать SharedPreferences в своих интересах, например:

  • Каждый раз, когда пользователь проверяет свой номер телефона, сохраняйте логическое значение (true) в SharedPreferences.
  • Когда пользовательхочет получить доступ к функции, которая доступна только для аутентифицированных пользователей, проверьте сохраненное логическое значение SharedPreferences, чтобы проверить, аутентифицирован ли пользователь или нет.
  • Когда пользователь выходит из системы, не забудьте удалить / сбросить логическое значение SharedPreferences.

Чтобы сохранить логическое значение в SharedPreferences, вы можете сделать что-то вроде этого:

// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);

// create an editor object from your sharedpreferences object
SharedPreferences.Editor editor = sharedPreferences.edit();

// save your boolean value to a reference called "status"
editor.putBoolean("status", true);

// save changes
editor.apply();

Чтобы извлечь сохраненное логическое значение, вы можете сделать что-то вроде этого:

// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);

// get saved boolean value, default value should be false
boolean ab  = sharedPreferences.getBoolean("status", false);

Чтобы удалить /сбросьте логическое значение SharedPreferences, просто установите логическое значение в false, как показано ниже:

// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);

// create an editor object from your sharedpreferences object
SharedPreferences.Editor editor = sharedPreferences.edit();

// save your boolean value to a reference called "status"
editor.putBoolean("status", false);

// save changes
editor.apply();

Надеюсь, это поможет. Веселого кодирования!

0 голосов
/ 12 октября 2019

Если все работает правильно, это означает, что у пользователя есть проверенный телефон, это должна быть аксиома: «Если пользователь проходит регистрацию по телефону, это означает, что его телефон был проверен, поэтому вам не нужно проверять это снова. ".

Если вам действительно нужно проверить, проверен ли телефон, вы должны сделать это вручную. Если вы используете только Firebase в качестве бэкэнда, вам нужно сохранить каждый телефон, если он проверен (например:" +2136xxxxxx ":" true ").

Если вы используете другой внутренний SQL, вы можете создать таблицу user со столбцом phoneIsVerified и обновить ее при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...