Как запросить проверку подлинности Firebase по номеру телефона? - PullRequest
0 голосов
/ 22 апреля 2020

В нашем приложении React 16.13.0 мы используем Firebase. Мы связываем пользователя с таким номером телефона, как

return firebase
  .auth()
  .currentUser.linkWithPhoneNumber(phoneNumber, recaptchaVerfier)
  .then(function (confirmationResult: any) {
    var code = window.prompt("Provide your SMS code");
    recaptchaVerfier.clear();
    return confirmationResult.confirm(code).then(() => {
      callback();
    });
  })

Мне было любопытно, как мы тогда go вернемся и запросим таблицу аутентификации Firebase для пользователей, имеющих конкретный номер телефона, предполагая, что номер телефона используется в качестве идентификатора для пользователя, как показано в представлении Аутентификация портала ниже

enter image description here

. Целью запросов является не вход в систему, а поиск различных пользователей.

1 Ответ

0 голосов
/ 22 апреля 2020

Вы не можете запросить базу данных аутентификации с помощью Client SDK, но вы можете сделать это с помощью Admin SDK .

Это означает, что вам нужно будет выполнить этот запрос на вашем собственном сервере или в Облачная функция.

Например, вы можете написать вызываемую облачную функцию , которая будет возвращать данные пользователя для определенного c пользователя.

Код будет выглядеть следующим образом:

exports.getUserByPhone = functions.https.onCall(async (data, context) => {

    try {

        const phoneNbr = data.phoneNbr;
        const userRecord = await admin.auth().getUserByPhoneNumber(phoneNbr);

        return userRecord;

    } catch (error) {
        // See https://firebase.google.com/docs/functions/callable#handle_errors

        // Also see here the error codes: https://firebase.google.com/docs/auth/admin/errors
        // In particular, the auth/user-not-found code is returned if there is no existing user record corresponding to the provided identifier. 
    }

});

Затем вы вызовете эту облачную функцию из внешнего интерфейса, как объяснено здесь в do c, с помощью передавая значение нужного phoneNbr.

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