PhoneAuthProvider class

PhoneAuthCredential 을 생성하는 공급자 .

PhoneAuthProvider Node.js 환경에서 작동하지 않습니다.

서명:

export declare class PhoneAuthProvider 

생성자

건설자 수정자 설명
(생성자)(인증) PhoneAuthProvider 클래스의 새 인스턴스를 생성합니다.

속성

재산 수정자 유형 설명
PHONE_SIGN_IN_METHOD static '핸드폰' 항상 SignInMethod 로 설정 .핸드폰.
PROVIDER_ID static '핸드폰' 항상 ProviderId 로 설정 .핸드폰.
공급자 ID "핸드폰" 항상 ProviderId 로 설정 .핸드폰.

행동 양식

방법 수정자 설명
자격 증명(verificationId, verifyCode) static PhoneAuthProvider.verifyPhoneNumber() 의 확인 ID와 사용자의 모바일 장치로 전송된 코드를 사용하여 전화 인증 자격 증명을 생성합니다.
자격 증명FromError(오류) static 오류가 전달되면 AuthCredential 을 반환합니다.
credentialFromResult(userCredential) static UserCredential 에서 AuthCredential 을 생성합니다. .
verifyPhoneNumber(phoneOptions, applicationVerifier) 지정된 전화번호로 확인 코드를 전송하여 전화번호 인증 흐름을 시작합니다.

PhoneAuthProvider.(생성자)

PhoneAuthProvider 클래스의 새 인스턴스를 생성합니다.

서명:

constructor(auth: Auth);

매개변수

매개변수 유형 설명
인증 인증 로그인이 발생해야 하는 Firebase 인증 인스턴스입니다.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

항상 SignInMethod 로 설정 .핸드폰.

서명:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

항상 ProviderId 로 설정 .핸드폰.

서명:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

항상 ProviderId 로 설정 .핸드폰.

서명:

readonly providerId: "phone";

PhoneAuthProvider.credential()

PhoneAuthProvider.verifyPhoneNumber() 의 확인 ID와 사용자의 모바일 장치로 전송된 코드를 사용하여 전화 인증 자격 증명을 생성합니다.

서명:

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

매개변수

매개변수 유형 설명
확인 ID PhoneAuthProvider.verifyPhoneNumber() 에서 반환된 확인 ID .
확인 코드 사용자의 모바일 기기로 전송된 인증 코드입니다.

보고:

전화인증 자격 증명

인증 공급자 자격 증명입니다.

실시예 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오류 자격 증명을 생성하는 데 오류가 발생했습니다.

보고:

인증 자격 증명 | 없는

PhoneAuthProvider.credentialFromResult()

UserCredential 에서 AuthCredential 을 생성합니다. .

서명:

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

매개변수

매개변수 유형 설명
사용자 자격 증명 사용자 자격 증명 사용자 자격 증명.

보고:

인증 자격 증명 | 없는

PhoneAuthProvider.verifyPhoneNumber()

지정된 전화번호로 확인 코드를 전송하여 전화번호 인증 흐름을 시작합니다.

서명:

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

매개변수

매개변수 유형 설명
전화옵션 전화정보옵션 | 끈
애플리케이션 검증자 애플리케이션 검증자 남용 방지를 위해 이 방법에는 ApplicationVerifier 도 필요합니다. . 이 SDK에는 reCAPTCHA 기반 구현인 RecaptchaVerifier가 포함되어 있습니다. .

보고:

약속<문자열>

이 흐름을 식별하기 위해 PhoneAuthProvider.credential() 에 전달할 수 있는 확인 ID에 대한 약속입니다.

실시예 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);