PhoneAuthProvider class

Provedor para gerar um PhoneAuthCredential .

PhoneAuthProvider não funciona em um ambiente Node.js.

Assinatura:

export declare class PhoneAuthProvider 

Construtores

Construtor Modificadores Descrição
(construtor)(autenticação) Constrói uma nova instância da classe PhoneAuthProvider

Propriedades

Propriedade Modificadores Tipo Descrição
PHONE_SIGN_IN_METHOD static 'telefone' Sempre definido como SignInMethod .TELEFONE.
PROVIDER_ID static 'telefone' Sempre definido como ProviderId .TELEFONE.
provedorId "telefone" Sempre definido como ProviderId .TELEFONE.

Métodos

Método Modificadores Descrição
credencial (verificaçãoId, verificaçãoCódigo) static Cria uma credencial de autenticação de telefone, dado o ID de verificação de PhoneAuthProvider.verifyPhoneNumber() e o código que foi enviado para o dispositivo móvel do usuário.
credencialFromError(erro) static Retorna um AuthCredential quando passa um erro.
credentialFromResult(userCredential) static Gera um AuthCredential de um UserCredential .
VerifyPhoneNumber(phoneOptions, applicationVerifier) Inicia um fluxo de autenticação de número de telefone enviando um código de verificação para o número de telefone fornecido.

PhoneAuthProvider.(construtor)

Constrói uma nova instância da classe PhoneAuthProvider

Assinatura:

constructor(auth: Auth);

Parâmetros

Parâmetro Tipo Descrição
autenticação Autenticação A instância do Firebase Auth em que os logins devem ocorrer.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Sempre definido como SignInMethod .TELEFONE.

Assinatura:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Sempre definido como ProviderId .TELEFONE.

Assinatura:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Sempre definido como ProviderId .TELEFONE.

Assinatura:

readonly providerId: "phone";

PhoneAuthProvider.credential()

Cria uma credencial de autenticação de telefone, dado o ID de verificação de PhoneAuthProvider.verifyPhoneNumber() e o código que foi enviado para o dispositivo móvel do usuário.

Assinatura:

static credential(verificationId: string, verificationCode: string): PhoneAuthCredential;

Parâmetros

Parâmetro Tipo Descrição
ID de verificação corda O ID de verificação retornado de PhoneAuthProvider.verifyPhoneNumber() .
Código de verificação corda O código de verificação enviado ao dispositivo móvel do usuário.

Retorna:

PhoneAuthCredential

A credencial do provedor de autenticação.

Exemplo 1

const provider = new PhoneAuthProvider(auth);
const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = signInWithCredential(auth, authCredential);

Exemplo 2

Um fluxo alternativo é fornecido usando o método signInWithPhoneNumber .

const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = await confirmationResult.confirm(verificationCode);

PhoneAuthProvider.credentialFromError()

Retorna um AuthCredential quando passa um erro.

Este método funciona para erros como auth/account-exists-with-different-credentials . Isso é útil para recuperar ao tentar definir o número de telefone de um usuário, mas o número em questão já está vinculado a outra conta. Por exemplo, o código a seguir tenta atualizar o número de telefone do usuário atual e, se isso falhar, vincula o usuário à conta associada a esse número:

const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber(number, verifier);
try {
  const code = ''; // Prompt the user for the verification code
  await updatePhoneNumber(
      auth.currentUser,
      PhoneAuthProvider.credential(verificationId, code));
} catch (e) {
  if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {
    const cred = PhoneAuthProvider.credentialFromError(e);
    await linkWithCredential(auth.currentUser, cred);
  }
}

// At this point, auth.currentUser.phoneNumber === number.

Assinatura:

static credentialFromError(error: FirebaseError): AuthCredential | null;

Parâmetros

Parâmetro Tipo Descrição
erro FirebaseError O erro para gerar uma credencial.

Retorna:

AuthCredential | nulo

PhoneAuthProvider.credentialFromResult()

Gera um AuthCredential de um UserCredential .

Assinatura:

static credentialFromResult(userCredential: UserCredential): AuthCredential | null;

Parâmetros

Parâmetro Tipo Descrição
userCredential Credencial de usuário A credencial do usuário.

Retorna:

AuthCredential | nulo

PhoneAuthProvider.verifyPhoneNumber()

Inicia um fluxo de autenticação de número de telefone enviando um código de verificação para o número de telefone fornecido.

Assinatura:

verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;

Parâmetros

Parâmetro Tipo Descrição
phoneOptions TelefoneInfoOpções | corda
applicationVerifier ApplicationVerifier Para prevenção de abuso, este método também requer um ApplicationVerifier . Este SDK inclui uma implementação baseada em reCAPTCHA, RecaptchaVerifier .

Retorna:

Promessa<string>

Uma promessa para um ID de verificação que pode ser passado para PhoneAuthProvider.credential() para identificar esse fluxo.

Exemplo 1

const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = await signInWithCredential(auth, authCredential);

Exemplo 2

Um fluxo alternativo é fornecido usando o método signInWithPhoneNumber .

const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = confirmationResult.confirm(verificationCode);

Exemplo

// 'recaptcha-container' is the ID of an element in the DOM.
const applicationVerifier = new RecaptchaVerifier('recaptcha-container');
const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);
// Obtain the verificationCode from the user.
const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = await signInWithCredential(auth, phoneCredential);