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