PhoneAuthProvider class

Nhà cung cấp dùng để tạo PhoneAuthCredential.

PhoneAuthProvider không hoạt động trong môi trường Node.js.

Chữ ký:

export declare class PhoneAuthProvider 

Công ty sản xuất

Công ty sản xuất Công cụ sửa đổi Mô tả
(hàm khởi tạo)(auth) Tạo một thực thể mới của lớp PhoneAuthProvider

Thuộc tính

Tài sản Công cụ sửa đổi Loại Mô tả
PHONE_SIGN_IN_METHOD static "phone" Luôn đặt thành SignInMethod.PHONE.
PROVIDER_ID static "phone" Luôn đặt thành ProviderId.PHONE.
Mã nhà cung cấp "điện thoại" Luôn đặt thành ProviderId.PHONE.

Phương thức

Phương thức Công cụ sửa đổi Mô tả
thông tin xác thực(verificationId, Mã xác minh) static Tạo thông tin xác thực điện thoại, dựa trên mã xác minh từ PhoneAuthProvider.verifyPhoneNumber() và mã được gửi đến thiết bị di động của người dùng.
credentialFromError(lỗi) static Trả về AuthCredential khi vượt qua lỗi.
credentialFromResult(userCredential) static Tạo AuthCredential từ UserCredential.
verifyPhoneNumber(phoneOptions, applicationVerifier) Bắt đầu quy trình xác thực số điện thoại bằng cách gửi mã xác minh đến số điện thoại đã cho.

PhoneAuthProvider.(hàm khởi tạo)

Tạo một thực thể mới của lớp PhoneAuthProvider

Chữ ký:

constructor(auth: Auth);

Thông số

Thông số Loại Mô tả
xác thực Xác thực Thực thể Xác thực Firebase mà hoạt động đăng nhập sẽ diễn ra.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Luôn đặt thành SignInMethod.PHONE.

Chữ ký:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Luôn đặt thành ProviderId.PHONE.

Chữ ký:

static readonly PROVIDER_ID: 'phone';

Mã số điện thoại PhoneAuthProvider.providerId

Luôn đặt thành ProviderId.PHONE.

Chữ ký:

readonly providerId: "phone";

PhoneAuthProvider.credential()

Tạo thông tin xác thực điện thoại, dựa trên mã xác minh từ PhoneAuthProvider.verifyPhoneNumber() và mã được gửi đến thiết bị di động của người dùng.

Chữ ký:

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

Thông số

Thông số Loại Mô tả
mã xác minh chuỗi Mã xác minh được trả về từ PhoneAuthProvider.verifyPhoneNumber().
mã xác minh chuỗi Mã xác minh được gửi đến thiết bị di động của người dùng.

Trường hợp trả lại hàng:

PhoneAuthCredential

Thông tin đăng nhập của nhà cung cấp dịch vụ xác thực.

Ví dụ 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);

Ví dụ 2

Một quy trình thay thế sẽ được cung cấp bằng phương thức signInWithPhoneNumber.

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

PhoneAuthProvider.credentialFromError()

Trả về AuthCredential khi vượt qua lỗi.

Phương thức này dùng được cho các lỗi như auth/account-exists-with-different-credentials. Điều này rất hữu ích cho việc khôi phục khi cố gắng đặt số điện thoại của người dùng nhưng số điện thoại đang đề cập đã được liên kết với một tài khoản khác. Ví dụ: Mã sau đây cố gắng cập nhật số điện thoại của người dùng hiện tại và nếu không thành công, hãy liên kết người dùng với tài khoản được liên kết với số điện thoại đó:

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.

Chữ ký:

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

Thông số

Thông số Loại Mô tả
error Lỗi Firebase Lỗi khi tạo thông tin xác thực.

Trường hợp trả lại hàng:

AuthCredential | rỗng

PhoneAuthProvider.credentialFromResult()

Tạo AuthCredential từ UserCredential.

Chữ ký:

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

Thông số

Thông số Loại Mô tả
thông tin xác thực người dùng Thông tin đăng nhập của người dùng Thông tin đăng nhập của người dùng.

Trường hợp trả lại hàng:

AuthCredential | rỗng

PhoneAuthProvider.verifyPhoneNumber()

Bắt đầu quy trình xác thực số điện thoại bằng cách gửi mã xác minh đến số điện thoại đã cho.

Chữ ký:

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

Thông số

Thông số Loại Mô tả
Tùy chọn điện thoại PhoneInfoOptions | chuỗi
applicationVerifier ApplicationVerifier Để ngăn chặn hành vi sai trái, phương pháp này cũng yêu cầu phải có ApplicationVerifier. SDK này bao gồm một phương thức triển khai dựa trên reCAPTCHA, ReCAPTCHAVerifier.

Trường hợp trả lại hàng:

Cam kết<string>

Lời hứa cho mã xác minh có thể được chuyển đến PhoneAuthProvider.credential() để xác định quy trình này.

Ví dụ 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);

Ví dụ 2

Một quy trình thay thế sẽ được cung cấp bằng phương thức signInWithPhoneNumber.

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

Ví dụ

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