PhoneAuthProvider class

Provedor para gerar uma PhoneAuthCredential.

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

Assinatura:

export declare class PhoneAuthProvider 

Construtores

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

Propriedades

Propriedade Modificadores Tipo Descrição
PHONE_SIGN_IN_method (em inglês) static "smartphone" Sempre defina como SignInMethod.PHONE.
PROVIDER_ID static "smartphone" Sempre defina como ProviderId.PHONE.
ID do provedor "telefone" Sempre defina como ProviderId.PHONE.

Métodos

Método Modificadores Descrição
credential(verificationId, verificationCode) static Cria uma credencial de autenticação para telefone, considerando o ID de verificação de PhoneAuthProvider.verifyNumber() e o código que foi enviado ao dispositivo móvel do usuário.
credentialFromError(error) static Retorna uma AuthCredential quando passa um erro.
credentialFromResult(userCredential) (link em inglês) static Gera um AuthCredential de uma UserCredential.
verifyNumber(phoneOptions, applicationVerifier) Inicia um fluxo de autenticação de número de telefone enviando um código de verificação para o número fornecido.

PhoneAuthProvider.(construtor)

Cria uma nova instância da classe PhoneAuthProvider

Assinatura:

constructor(auth: Auth);

Parâmetros

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

PhoneAuthProvider.PHONE_SIGN_IN_ visto

Sempre defina como SignInMethod.PHONE.

Assinatura:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Sempre defina como ProviderId.PHONE.

Assinatura:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Sempre defina como ProviderId.PHONE.

Assinatura:

readonly providerId: "phone";

PhoneAuthProvider.credential()

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

Assinatura:

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

Parâmetros

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

Retorna:

PhoneAuthCredential (em inglês)

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 uma AuthCredential quando passa um erro.

Esse método funciona para erros como auth/account-exists-with-different-credentials. Isso é útil para a recuperação ao tentar definir um 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
error FirebaseError (em inglês) O erro do qual gerar uma credencial.

Retorna:

AuthCredential | nulo

PhoneAuthProvider.credentialFromResult()

Gera um AuthCredential de uma UserCredential.

Assinatura:

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

Parâmetros

Parâmetro Tipo Descrição
Credencialdeusuário UserCredential (em inglês) A credencial do usuário.

Retorna:

AuthCredential | nulo

PhoneAuthProvider.verify videoclipe()

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

Assinatura:

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

Parâmetros

Parâmetro Tipo Descrição
phoneOptions PhoneInfoOptions | corda
applicationVerifier ApplicationVerifier (link em inglês) Para evitar abusos, esse método também exige um ApplicationVerifier. Esse SDK inclui uma implementação baseada em reCAPTCHA, o RecaptchaVerifier.

Retorna:

Promessa<string>

Uma promessa para um ID de verificação que pode ser transmitido 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);