PhoneAuthProvider class

Proveedor para generar una PhoneAuthCredential .

PhoneAuthProvider no funciona en un entorno Node.js.

Firma:

export declare class PhoneAuthProvider 

Constructores

Constructor Modificadores Descripción
(constructor) (autenticación) Construye una nueva instancia de la clase PhoneAuthProvider

Propiedades

Propiedad Modificadores Tipo Descripción
PHONE_SIGN_IN_METHOD static 'teléfono' Siempre configurado en SignInMethod .TELÉFONO.
PROVEEDOR_ID static 'teléfono' Siempre configurado en ProviderId .TELÉFONO.
ID de proveedor "teléfono" Siempre configurado en ProviderId .TELÉFONO.

Métodos

Método Modificadores Descripción
credencial(ID de verificación, código de verificación) static Crea una credencial de autenticación de teléfono, dada la identificación de verificación de PhoneAuthProvider.verifyPhoneNumber() y el código que se envió al dispositivo móvil del usuario.
credencialDeError(error) static Devuelve una AuthCredential cuando se pasa un error.
credencialDeResultado(credencialdeusuario) static Genera una AuthCredential a partir de una UserCredential .
verificarNúmeroDeTeléfono(opcionesdeteléfono,verificadordeaplicación) Inicia un flujo de autenticación de número de teléfono enviando un código de verificación al número de teléfono proporcionado.

PhoneAuthProvider.(constructor)

Construye una nueva instancia de la clase PhoneAuthProvider

Firma:

constructor(auth: Auth);

Parámetros

Parámetro Tipo Descripción
autenticación autenticación La instancia de Firebase Auth en la que deben realizarse los inicios de sesión.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Siempre configurado en SignInMethod .TELÉFONO.

Firma:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Siempre configurado en ProviderId .TELÉFONO.

Firma:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Siempre configurado en ProviderId .TELÉFONO.

Firma:

readonly providerId: "phone";

PhoneAuthProvider.credencial()

Crea una credencial de autenticación de teléfono, dada la identificación de verificación de PhoneAuthProvider.verifyPhoneNumber() y el código que se envió al dispositivo móvil del usuario.

Firma:

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

Parámetros

Parámetro Tipo Descripción
ID de verificación cadena El ID de verificación devuelto por PhoneAuthProvider.verifyPhoneNumber() .
código de verificación cadena El código de verificación enviado al dispositivo móvil del usuario.

Devoluciones:

Credencial de autenticación de teléfono

La credencial del proveedor de autenticación.

Ejemplo 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);

Ejemplo 2

Se proporciona un flujo alternativo mediante el método signInWithPhoneNumber .

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

PhoneAuthProvider.credentialFromError()

Devuelve una AuthCredential cuando se pasa un error.

Este método funciona para errores como auth/account-exists-with-different-credentials . Esto es útil para recuperar cuando se intenta configurar el número de teléfono de un usuario pero el número en cuestión ya está vinculado a otra cuenta. Por ejemplo, el siguiente código intenta actualizar el número de teléfono del usuario actual y, si eso falla, vincula al usuario con la cuenta asociada a ese 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.

Firma:

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

Parámetros

Parámetro Tipo Descripción
error Error de base de fuego El error al generar una credencial.

Devoluciones:

Credencial de autenticación | nulo

PhoneAuthProvider.credentialFromResult()

Genera una AuthCredential a partir de una UserCredential .

Firma:

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

Parámetros

Parámetro Tipo Descripción
credencial de usuario Credencial de usuario La credencial del usuario.

Devoluciones:

Credencial de autenticación | nulo

PhoneAuthProvider.verifyPhoneNumber()

Inicia un flujo de autenticación de número de teléfono enviando un código de verificación al número de teléfono proporcionado.

Firma:

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

Parámetros

Parámetro Tipo Descripción
Opciones de teléfono Opciones de información del teléfono | cadena
verificador de aplicación Verificador de aplicaciones Para la prevención de abusos, este método también requiere un ApplicationVerifier . Este SDK incluye una implementación basada en reCAPTCHA, RecaptchaVerifier .

Devoluciones:

Promesa<cadena>

Una promesa para una ID de verificación que se puede pasar a PhoneAuthProvider.credential() para identificar este flujo.

Ejemplo 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);

Ejemplo 2

Se proporciona un flujo alternativo mediante el método signInWithPhoneNumber .

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

Ejemplo

// '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);