موفّر الخدمة لإنشاء 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() |
رمز التحقّق | السلسلة | رمز التحقّق الذي تم إرساله إلى الجهاز الجوّال للمستخدم. |
المرتجعات:
بيانات اعتماد موفّر المصادقة.
مثال 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);