PhoneAuthProvider class

Penyedia untuk menghasilkan PhoneAuthCredential .

PhoneAuthProvider tidak berfungsi di lingkungan Node.js.

Tanda tangan:

export declare class PhoneAuthProvider 

Konstruktor

Konstruktor Pengubah Keterangan
(konstruktor)(auth) Membuat instance baru dari kelas PhoneAuthProvider

Properti

Properti Pengubah Jenis Keterangan
TELEPON_SIGN_IN_METHOD static 'telepon' Selalu disetel ke SignInMethod .TELEPON.
PROVIDER_ID static 'telepon' Selalu disetel ke ProviderId .TELEPON.
penyediaId "telepon" Selalu disetel ke ProviderId .TELEPON.

Metode

metode Pengubah Keterangan
kredensial(Id verifikasi, Kode verifikasi) static Membuat kredensial autentikasi telepon, dengan memasukkan ID verifikasi dari PhoneAuthProvider.verifyPhoneNumber() dan kode yang dikirimkan ke perangkat seluler pengguna.
credentialFromError(kesalahan) static Mengembalikan AuthCredential ketika terjadi kesalahan.
credentialFromResult(penggunaCredential) static Menghasilkan AuthCredential dari UserCredential .
verifikasiNomor Telepon(Opsi telepon, verifikasi aplikasi) Memulai alur autentikasi nomor telepon dengan mengirimkan kode verifikasi ke nomor telepon yang diberikan.

PhoneAuthProvider.(konstruktor)

Membuat instance baru dari kelas PhoneAuthProvider

Tanda tangan:

constructor(auth: Auth);

Parameter

Parameter Jenis Keterangan
autentik Penulis Instance Firebase Auth tempat login harus dilakukan.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Selalu disetel ke SignInMethod .TELEPON.

Tanda tangan:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Selalu disetel ke ProviderId .TELEPON.

Tanda tangan:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Selalu disetel ke ProviderId .TELEPON.

Tanda tangan:

readonly providerId: "phone";

PhoneAuthProvider.kredensial()

Membuat kredensial autentikasi telepon, dengan memasukkan ID verifikasi dari PhoneAuthProvider.verifyPhoneNumber() dan kode yang dikirimkan ke perangkat seluler pengguna.

Tanda tangan:

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

Parameter

Parameter Jenis Keterangan
verifikasiId rangkaian ID verifikasi yang dikembalikan dari PhoneAuthProvider.verifyPhoneNumber() .
Kode verifikasi rangkaian Kode verifikasi dikirim ke perangkat seluler pengguna.

Pengembalian:

Kredensial Otentikasi Telepon

Kredensial penyedia autentikasi.

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

Contoh 2

Alur alternatif disediakan menggunakan metode signInWithPhoneNumber .

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

PhoneAuthProvider.credentialFromError()

Mengembalikan AuthCredential ketika terjadi kesalahan.

Metode ini berfungsi untuk kesalahan seperti auth/account-exists-with-different-credentials . Hal ini berguna untuk memulihkan ketika mencoba menyetel nomor telepon pengguna tetapi nomor tersebut sudah terikat dengan akun lain. Misalnya, kode berikut mencoba memperbarui nomor telepon pengguna saat ini, dan jika gagal, menghubungkan pengguna dengan akun yang terkait dengan nomor tersebut:

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.

Tanda tangan:

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

Parameter

Parameter Jenis Keterangan
kesalahan Kesalahan Firebase Kesalahan untuk menghasilkan kredensial dari.

Pengembalian:

Kredensial Auth | batal

PhoneAuthProvider.credentialFromResult()

Menghasilkan AuthCredential dari UserCredential .

Tanda tangan:

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

Parameter

Parameter Jenis Keterangan
Kredensial pengguna Kredensial Pengguna Kredensial pengguna.

Pengembalian:

Kredensial Auth | batal

PhoneAuthProvider.verifyPhoneNumber()

Memulai alur autentikasi nomor telepon dengan mengirimkan kode verifikasi ke nomor telepon yang diberikan.

Tanda tangan:

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

Parameter

Parameter Jenis Keterangan
Opsi telepon Opsi Info Telepon | rangkaian
pemverifikasi aplikasi Pemverifikasi Aplikasi Untuk pencegahan penyalahgunaan, metode ini juga memerlukan ApplicationVerifier . SDK ini mencakup implementasi berbasis reCAPTCHA, RecaptchaVerifier .

Pengembalian:

Janji<string>

Janji untuk ID verifikasi yang dapat diteruskan ke PhoneAuthProvider.credential() untuk mengidentifikasi aliran ini..

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

Contoh 2

Alur alternatif disediakan menggunakan metode signInWithPhoneNumber .

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

Contoh

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