Provedor para gerar um PhoneAuthCredential .
PhoneAuthProvider
não funciona em um ambiente Node.js.
Assinatura:
export declare class PhoneAuthProvider
Construtores
Construtor | Modificadores | Descrição |
---|---|---|
(construtor)(autenticação) | Constrói uma nova instância da classe PhoneAuthProvider |
Propriedades
Propriedade | Modificadores | Tipo | Descrição |
---|---|---|---|
PHONE_SIGN_IN_METHOD | static | 'telefone' | Sempre definido como SignInMethod .TELEFONE. |
PROVIDER_ID | static | 'telefone' | Sempre definido como ProviderId .TELEFONE. |
ID do provedor | "telefone" | Sempre definido como ProviderId .TELEFONE. |
Métodos
Método | Modificadores | Descrição |
---|---|---|
credencial(verificationId, verifyCode) | static | Cria uma credencial de autenticação de telefone, considerando o ID de verificação de PhoneAuthProvider.verifyPhoneNumber() e o código que foi enviado ao dispositivo móvel do usuário. |
credencialFromError(erro) | static | Retorna um AuthCredential quando é transmitido um erro. |
credencialFromResult(userCredential) | static | Gera um AuthCredential a partir de um UserCredential . |
verificarPhoneNumber(phoneOptions, applicationVerifier) | Inicia um fluxo de autenticação de número de telefone enviando um código de verificação para o número de telefone fornecido. |
PhoneAuthProvider.(construtor)
Constrói uma nova instância da classe PhoneAuthProvider
Assinatura:
constructor(auth: Auth);
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
autenticação | Autenticação | A instância do Firebase Auth em que os logins devem ocorrer. |
PhoneAuthProvider.PHONE_SIGN_IN_METHOD
Sempre definido como SignInMethod .TELEFONE.
Assinatura:
static readonly PHONE_SIGN_IN_METHOD: 'phone';
PhoneAuthProvider.PROVIDER_ID
Sempre definido como ProviderId .TELEFONE.
Assinatura:
static readonly PROVIDER_ID: 'phone';
PhoneAuthProvider.providerId
Sempre definido como ProviderId .TELEFONE.
Assinatura:
readonly providerId: "phone";
PhoneAuthProvider.credential()
Cria uma credencial de autenticação de telefone, considerando o ID de verificação de PhoneAuthProvider.verifyPhoneNumber() e o código que foi enviado ao dispositivo móvel do usuário.
Assinatura:
static credential(verificationId: string, verificationCode: string): PhoneAuthCredential;
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
ID de verificação | corda | O ID de verificação retornado de PhoneAuthProvider.verifyPhoneNumber() . |
Código de verificação | corda | O código de verificação enviado ao dispositivo móvel do usuário. |
Retorna:
A credencial do provedor de autenticação.
Exemplo 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);
Exemplo 2
Um fluxo alternativo é fornecido usando o método signInWithPhoneNumber
.
const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = await confirmationResult.confirm(verificationCode);
PhoneAuthProvider.credentialFromError()
Retorna um AuthCredential quando é transmitido um erro.
Este método funciona para erros como auth/account-exists-with-different-credentials
. Isso é útil para recuperação ao tentar definir o número de telefone de um usuário, mas o número em questão já está vinculado a outra conta. Por exemplo, o código a seguir tenta atualizar o número de telefone do usuário atual e, se isso falhar, vincula o usuário à conta associada a esse número:
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.
Assinatura:
static credentialFromError(error: FirebaseError): AuthCredential | null;
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
erro | Erro do Firebase | O erro para gerar uma credencial. |
Retorna:
Credencial de autenticação | nulo
PhoneAuthProvider.credentialFromResult()
Gera um AuthCredential a partir de um UserCredential .
Assinatura:
static credentialFromResult(userCredential: UserCredential): AuthCredential | null;
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
credencial do usuário | Credencial de usuário | A credencial do usuário. |
Retorna:
Credencial de autenticação | nulo
PhoneAuthProvider.verifyPhoneNumber()
Inicia um fluxo de autenticação de número de telefone enviando um código de verificação para o número de telefone fornecido.
Assinatura:
verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
opções de telefone | Opções de informações do telefone | corda | |
verificador de aplicação | Verificador de aplicativo | Para prevenção de abuso, este método também requer um ApplicationVerifier . Este SDK inclui uma implementação baseada em reCAPTCHA, RecaptchaVerifier . |
Retorna:
Promessa<string>
Uma promessa de um ID de verificação que pode ser passado para PhoneAuthProvider.credential() para identificar este fluxo.
Exemplo 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);
Exemplo 2
Um fluxo alternativo é fornecido usando o método signInWithPhoneNumber
.
const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = confirmationResult.confirm(verificationCode);
Exemplo
// '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);