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