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)(autorización) Construye una nueva instancia de la clase PhoneAuthProvider

Propiedades

Propiedad Modificadores Tipo Descripción
PHONE_SIGN_IN_METHOD static 'teléfono' Establecido siempre en SignInMethod .TELÉFONO.
PROVIDER_ID static 'teléfono' Establecido siempre en ProviderId .TELÉFONO.
ID de proveedor "teléfono" Establecido siempre 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 ID 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(credencialusuario) static Genera una AuthCredential a partir de una UserCredential .
verificar número de teléfono (opciones de teléfono, verificador de aplicación) Inicia un flujo de autenticación de número de teléfono mediante el envío de un código de verificación al número de teléfono dado.

PhoneAuthProvider.(constructor)

Construye una nueva instancia de la clase PhoneAuthProvider

Firma:

constructor(auth: Auth);

Parámetros

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

Proveedor de autenticación telefónica.PHONE_SIGN_IN_METHOD

Establecido siempre en SignInMethod .TELÉFONO.

Firma:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

Proveedor de autenticación telefónica.PROVIDER_ID

Establecido siempre en ProviderId .TELÉFONO.

Firma:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Establecido siempre en ProviderId .TELÉFONO.

Firma:

readonly providerId: "phone";

PhoneAuthProvider.credencial()

Crea una credencial de autenticación de teléfono, dada la ID 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
identificación 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:

PhoneAuthCredential

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 utilizando 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 la recuperación 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 con 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 FirebaseError El error para generar una credencial a partir de.

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 de usuario.

Devoluciones:

Credencial de autenticación | nulo

PhoneAuthProvider.verifyPhoneNumber()

Inicia un flujo de autenticación de número de teléfono mediante el envío de un código de verificación al número de teléfono dado.

Firma:

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

Parámetros

Parámetro Tipo Descripción
phoneOptions PhoneInfoOptions | cadena
verificador de aplicaciones ApplicationVerifier 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 utilizando 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);