PhoneAuthProvider class

ผู้ให้บริการสำหรับการสร้าง PhoneAuthCredential

PhoneAuthProvider ไม่ทำงานในสภาพแวดล้อม Node.js

ลายเซ็น:

export declare class PhoneAuthProvider 

ผู้ผลิต

ผู้ผลิต คีย์ตัวปรับแต่ง คำอธิบาย
(เครื่องมือสร้าง)(การตรวจสอบสิทธิ์) สร้างอินสแตนซ์ใหม่ของคลาส PhoneAuthProvider

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ คีย์ตัวปรับแต่ง ประเภท คำอธิบาย
วิธีหมายเลขโทรศัพท์ static "โทรศัพท์" ตั้งค่าเป็น SignInMethod.PHONE เสมอ
PROVIDER_ID static "โทรศัพท์" ตั้งค่าเป็น ProviderId.PHONE เสมอ
รหัสผู้ให้บริการ "โทรศัพท์" ตั้งค่าเป็น ProviderId.PHONE เสมอ

เมธอด

วิธีการ คีย์ตัวปรับแต่ง คำอธิบาย
ข้อมูลเข้าสู่ระบบ(รหัสการยืนยัน, รหัสการยืนยัน) static สร้างข้อมูลเข้าสู่ระบบการตรวจสอบสิทธิ์โทรศัพท์โดยใช้รหัสยืนยันจาก PhoneAuthProvider.verifyPhoneNumber() และรหัสที่ส่งไปยังอุปกรณ์เคลื่อนที่ของผู้ใช้
credentialFromError(ข้อผิดพลาด) static แสดงผล AuthCredential เมื่อผ่านข้อผิดพลาด
credentialFromผลลัพธ์(userCredential) static สร้าง AuthCredential จาก UserCredential
verifyPhoneNumber(phoneOptions, applicationVerifier) เริ่มขั้นตอนการตรวจสอบสิทธิ์หมายเลขโทรศัพท์โดยส่งรหัสยืนยันไปยังหมายเลขโทรศัพท์ที่ระบุ

PhoneAuthProvider.(ตัวสร้าง)

สร้างอินสแตนซ์ใหม่ของคลาส PhoneAuthProvider

ลายเซ็น:

constructor(auth: Auth);

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
การตรวจสอบสิทธิ์ การตรวจสอบสิทธิ์ อินสแตนซ์ Auth ของ Firebase ที่ควรมีการลงชื่อเข้าใช้

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

ตั้งค่าเป็น SignInMethod.PHONE เสมอ

ลายเซ็น:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

ตั้งค่าเป็น ProviderId.PHONE เสมอ

ลายเซ็น:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

ตั้งค่าเป็น ProviderId.PHONE เสมอ

ลายเซ็น:

readonly providerId: "phone";

PhoneAuthProvider.credential()

สร้างข้อมูลเข้าสู่ระบบการตรวจสอบสิทธิ์โทรศัพท์โดยใช้รหัสยืนยันจาก PhoneAuthProvider.verifyPhoneNumber() และรหัสที่ส่งไปยังอุปกรณ์เคลื่อนที่ของผู้ใช้

ลายเซ็น:

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

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
รหัสการยืนยัน สตริง รหัสยืนยันที่ส่งคืนจาก PhoneAuthProvider.verifyPhoneNumber()
รหัสยืนยัน สตริง รหัสยืนยันที่ส่งไปยังอุปกรณ์เคลื่อนที่ของผู้ใช้

การคืนสินค้า:

PhoneAuthCredential

ข้อมูลเข้าสู่ระบบของผู้ให้บริการการตรวจสอบสิทธิ์

ตัวอย่างที่ 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);

ตัวอย่างที่ 2

แสดงขั้นตอนทางเลือกโดยใช้เมธอด signInWithPhoneNumber

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

PhoneAuthProvider.credentialFromError()

แสดงผล AuthCredential เมื่อผ่านข้อผิดพลาด

วิธีนี้ใช้ได้กับข้อผิดพลาด เช่น auth/account-exists-with-different-credentials วิธีนี้มีประโยชน์ในการกู้คืนเมื่อพยายามตั้งค่าหมายเลขโทรศัพท์ของผู้ใช้ แต่หมายเลขที่เป็นปัญหานั้นเชื่อมโยงกับบัญชีอื่นแล้ว ตัวอย่างเช่น รหัสต่อไปนี้จะพยายามอัปเดตหมายเลขโทรศัพท์ของผู้ใช้ปัจจุบัน และหากไม่ได้ผล จะเชื่อมโยงผู้ใช้กับบัญชีที่เชื่อมโยงกับหมายเลขนั้น

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.

ลายเซ็น:

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

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
ข้อผิดพลาด ข้อผิดพลาด Firebase ข้อผิดพลาดในการสร้างข้อมูลเข้าสู่ระบบ

การคืนสินค้า:

AuthCredential | ค่าว่าง

PhoneAuthProvider.credentialFromResult()

สร้าง AuthCredential จาก UserCredential

ลายเซ็น:

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

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
ข้อมูลเข้าสู่ระบบของผู้ใช้ รหัสผู้ใช้ ข้อมูลเข้าสู่ระบบของผู้ใช้

การคืนสินค้า:

AuthCredential | ค่าว่าง

PhoneAuthProvider.verifyPhoneNumber()

เริ่มขั้นตอนการตรวจสอบสิทธิ์หมายเลขโทรศัพท์โดยส่งรหัสยืนยันไปยังหมายเลขโทรศัพท์ที่ระบุ

ลายเซ็น:

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

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
ตัวเลือกโทรศัพท์ PhoneInfoOptions | สตริง
ApplicationVerifier ApplicationVerifier สำหรับการป้องกันการละเมิด วิธีนี้ต้องใช้ ApplicationVerifier ด้วย SDK นี้มีการใช้งาน RecaptchaVerifier ซึ่งใช้ reCAPTCHA

การคืนสินค้า:

คำมั่นสัญญา<สตริง>

คำสัญญาสำหรับรหัสยืนยันที่ส่งไปยัง PhoneAuthProvider.credential() เพื่อระบุขั้นตอนนี้ได้

ตัวอย่างที่ 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);

ตัวอย่างที่ 2

แสดงขั้นตอนทางเลือกโดยใช้เมธอด signInWithPhoneNumber

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

ตัวอย่าง

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