PhoneAuthCredential を生成するためのプロバイダ。
PhoneAuthProvider
は Node.js 環境では動作しません。
署名:
export declare class PhoneAuthProvider
コンストラクタ
コンストラクタ | 修飾キー | 説明 |
---|---|---|
(コンストラクタ)(auth) | PhoneAuthProvider クラスの新しいインスタンスを作成します。 |
プロパティ
プロパティ | 修飾キー | タイプ | 説明 |
---|---|---|---|
PHONE_SIGN_IN_method | static |
'電話' | 常に SignInMethod.PHONE に設定します。 |
PROVIDER_ID | static |
'電話' | 常に ProviderId.PHONE に設定します。 |
providerId | 「電話」 | 常に ProviderId.PHONE に設定します。 |
メソッド
メソッド | 修飾キー | 説明 |
---|---|---|
credential(verificationId, verificationCode) をご覧ください。 | static |
PhoneAuthProvider.verifyPhoneNumber() からの確認 ID とユーザーのモバイル デバイスに送信されたコードに基づいて、電話認証の認証情報を作成します。 |
credentialFromError(error) | static |
エラーが渡された場合は AuthCredential を返します。 |
credentialFromResult(userCredential) | static |
UserCredential から AuthCredential を生成します。 |
verifyPhoneNumber(phoneOptions, applicationVerifier) | 指定された電話番号に確認コードを送信して、電話番号の認証フローを開始します。 |
PhoneAuthProvider.(コンストラクタ)
PhoneAuthProvider
クラスの新しいインスタンスを作成します。
署名:
constructor(auth: Auth);
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
auth | 認証 | ログインを行う Firebase Auth インスタンス。 |
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() からの確認 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;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
エラー | FirebaseError | 認証情報の生成元となるエラー。 |
戻り値:
AuthCredential |null
PhoneAuthProvider.credentialFromResult()
UserCredential から AuthCredential を生成します。
署名:
static credentialFromResult(userCredential: UserCredential): AuthCredential | null;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
userCredential | UserCredential(ユーザーの認証情報) | ユーザー認証情報。 |
戻り値:
AuthCredential |null
PhoneAuthProvider.verifyPhoneNumber()
指定された電話番号に確認コードを送信して、電話番号の認証フローを開始します。
署名:
verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
phoneOptions | PhoneInfoOptions |文字列 | |
applicationVerifier | ApplicationVerifier | 不正使用防止のため、このメソッドには ApplicationVerifier も必要です。この SDK には、reCAPTCHA ベースの実装である RecaptchaVerifier が含まれています。 |
戻り値:
Promise<文字列>
このフローを識別するために PhoneAuthProvider.credential() に渡すことができる確認 ID の Promise。
例 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);