PhoneAuthProvider class

Provider per la generazione di un PhoneAuthCredential .

PhoneAuthProvider non funziona in un ambiente Node.js.

Firma:

export declare class PhoneAuthProvider 

Costruttori

Costruttore Modificatori Descrizione
(costruttore)(autore) Costruisce una nuova istanza della classe PhoneAuthProvider

Proprietà

Proprietà Modificatori Tipo Descrizione
TELEFONO_SIGN_IN_METHOD static 'telefono' Imposta sempre su SignInMethod .TELEFONO.
PROVIDER_ID static 'telefono' Impostato sempre su ProviderId .TELEFONO.
providerId "telefono" Impostato sempre su ProviderId .TELEFONO.

Metodi

Metodo Modificatori Descrizione
credenziale(verificationId, verifyCode) static Crea una credenziale di autenticazione del telefono, dato l'ID di verifica da PhoneAuthProvider.verifyPhoneNumber() e il codice inviato al dispositivo mobile dell'utente.
credentialFromError(errore) static Restituisce un AuthCredential quando viene superato un errore.
credenzialeDalRisultato(credenzialeutente) static Genera un AuthCredential da un UserCredential .
verificaNumeroTelefono(Opzionitelefono, applicationVerifier) Avvia un flusso di autenticazione del numero di telefono inviando un codice di verifica al numero di telefono specificato.

PhoneAuthProvider.(costruttore)

Costruisce una nuova istanza della classe PhoneAuthProvider

Firma:

constructor(auth: Auth);

Parametri

Parametro Tipo Descrizione
aut Aut L'istanza di autenticazione Firebase in cui devono avvenire gli accessi.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Imposta sempre su SignInMethod .TELEFONO.

Firma:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Impostato sempre su ProviderId .TELEFONO.

Firma:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Impostato sempre su ProviderId .TELEFONO.

Firma:

readonly providerId: "phone";

PhoneAuthProvider.credential()

Crea una credenziale di autenticazione del telefono, dato l'ID di verifica da PhoneAuthProvider.verifyPhoneNumber() e il codice inviato al dispositivo mobile dell'utente.

Firma:

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

Parametri

Parametro Tipo Descrizione
verificaId corda L'ID di verifica restituito da PhoneAuthProvider.verifyPhoneNumber() .
codice di verifica corda Il codice di verifica inviato al dispositivo mobile dell'utente.

Ritorna:

PhoneAuthCredential

La credenziale del provider di autenticazione.

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

Esempio 2

Viene fornito un flusso alternativo utilizzando il metodo signInWithPhoneNumber .

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

PhoneAuthProvider.credentialFromError()

Restituisce un AuthCredential quando viene superato un errore.

Questo metodo funziona per errori come auth/account-exists-with-different-credentials . Ciò è utile per il ripristino quando si tenta di impostare il numero di telefono di un utente ma il numero in questione è già collegato a un altro account. Ad esempio, il codice seguente tenta di aggiornare il numero di telefono dell'utente corrente e, se l'operazione non riesce, collega l'utente all'account associato a quel numero:

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;

Parametri

Parametro Tipo Descrizione
errore Errore Firebase L'errore da cui generare una credenziale.

Ritorna:

Credenziali di autenticazione | nullo

PhoneAuthProvider.credentialFromResult()

Genera un AuthCredential da un UserCredential .

Firma:

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

Parametri

Parametro Tipo Descrizione
userCredential Credenziali utente Le credenziali dell'utente.

Ritorna:

Credenziali di autenticazione | nullo

PhoneAuthProvider.verifyPhoneNumber()

Avvia un flusso di autenticazione del numero di telefono inviando un codice di verifica al numero di telefono specificato.

Firma:

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

Parametri

Parametro Tipo Descrizione
phoneOpzioni OpzioniInfotelefono | corda
applicationVerifier ApplicationVerifier Per la prevenzione degli abusi, questo metodo richiede anche un ApplicationVerifier . Questo SDK include un'implementazione basata su reCAPTCHA, RecaptchaVerifier .

Ritorna:

Promesso<string>

Una promessa per un ID di verifica che può essere passato a PhoneAuthProvider.credential() per identificare questo flusso.

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

Esempio 2

Viene fornito un flusso alternativo utilizzando il metodo signInWithPhoneNumber .

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

Esempio

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