PhoneAuthProvider class

موفّر الخدمة لإنشاء PhoneAuthCredential.

لا تعمل الدالة PhoneAuthProvider في بيئة Node.js.

Signature:

export declare class PhoneAuthProvider 

الشركات المصنِّعة

الشركة المصنِّعة المعدِّلات الوصف
(دالة الإنشاء)(auth) إنشاء مثيل جديد لفئة PhoneAuthProvider

أماكن إقامة

الموقع المعدِّلات النوع الوصف
PHONE_SIGN_IN_method static "هاتف" اضبط دائمًا على SignInMethod.PHONE.
مين static "هاتف" اضبط دائمًا على ProviderId.PHONE.
providerId "الهاتف" اضبط دائمًا على ProviderId.PHONE.

الطُرق

الطريقة المعدِّلات الوصف
credit(verificationId, verificationCode) static تنشئ بيانات اعتماد لمصادقة الهاتف، نظرًا لرقم تعريف التحقق من PhoneAuthProvider.verifyPhoneNumber() والرمز الذي تم إرساله إلى الجهاز الجوّال للمستخدم.
CredentialFromError(error) static تعرض AuthCredential عند تمرير خطأ.
certificationFromResult(userCredential) static تنشئ هذه الدالة AuthCredential من UserCredential.
verifyPhoneNumber(phoneOptions, applicationVerifier) لبدء مسار مصادقة رقم الهاتف عن طريق إرسال رمز تحقُّق إلى رقم الهاتف المحدّد

PhoneAuthProvider.(أداة الإنشاء)

إنشاء مثيل جديد لفئة PhoneAuthProvider

Signature:

constructor(auth: Auth);

المَعلمات

المعلمة النوع الوصف
المصادقة المصادقة مثيل مصادقة Firebase الذي يجب أن تحدث فيه عمليات تسجيل الدخول.

PhoneAuthProvider.PHONE_SIGN_IN_Method

اضبط دائمًا على SignInMethod.PHONE.

Signature:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.{8/}_ID

اضبط دائمًا على ProviderId.PHONE.

Signature:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

اضبط دائمًا على ProviderId.PHONE.

Signature:

readonly providerId: "phone";

PhoneAuthProvider.Credential()

تنشئ بيانات اعتماد لمصادقة الهاتف، نظرًا لرقم تعريف التحقق من PhoneAuthProvider.verifyPhoneNumber() والرمز الذي تم إرساله إلى الجهاز الجوّال للمستخدم.

Signature:

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.

Signature:

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

المَعلمات

المعلمة النوع الوصف
خطأ خطأ Firebase حدث خطأ في إنشاء بيانات اعتماد منه.

المرتجعات:

AuthCredential | فارغ

PhoneAuthProvider.CredentialFromResult()

تنشئ هذه الدالة AuthCredential من UserCredential.

Signature:

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

المَعلمات

المعلمة النوع الوصف
بيانات اعتماد المستخدم UserCredential بيانات اعتماد المستخدم

المرتجعات:

AuthCredential | فارغ

PhoneAuthProvider.verifyPhoneNumber()

لبدء مسار مصادقة رقم الهاتف عن طريق إرسال رمز تحقُّق إلى رقم الهاتف المحدّد

Signature:

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

المَعلمات

المعلمة النوع الوصف
خيارات الهاتف PhoneInfoOptions | سلسلة
أداة appVerifier ApplicationVerifier لمنع إساءة الاستخدام، تتطلب هذه الطريقة أيضًا توفّر ApplicationVerifier. تتضمّن حزمة تطوير البرامج (SDK) هذه عملية تنفيذ مستندة إلى reCAPTCHA، وهي RecaptchaVerifier.

المرتجعات:

وعود<string>

وعد بمعرّف إثبات الهوية الذي يمكن تمريره إلى PhoneAuthProvider.certified() لتحديد هذا المسار.

مثال 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);