---
description: Unofficial Capacitor plugin for Firebase Authentication SDK to authenticate users with email, phone, and social providers.
title: Capacitor Firebase Auth Plugin for Android, iOS & Web - Capawesome
image: https://capawesome.io/docs/assets/images/social/plugins/firebase/authentication.png
---

[ Skip to content](#capacitor-firebaseauthentication) 

[ 🎉 Introducing **Capawesome Platform** — one platform for Live Updates, Native Builds, App Store Publishing, and Insider SDKs.](https://capawesome.io) 

* [  FAQ ](#faq)
* [  Firebase JavaScript SDK ](#firebase-javascript-sdk)
* [  Demo ](#demo)
* [  Starter templates ](#starter-templates)
* [  Usage ](#usage)
* [  API ](#api)
* [  Type Aliases ](#type-aliases)
* [  Enums ](#enums)
* [  Changelog ](#changelog)
* [  License ](#license)
* [  Credits ](#credits)
* [  Crashlytics ](/docs/plugins/firebase/crashlytics/)
* [  Cloud Firestore ](/docs/plugins/firebase/cloud-firestore/)
* [  Cloud Functions ](/docs/plugins/firebase/cloud-functions/)
* [  Cloud Messaging ](/docs/plugins/firebase/cloud-messaging/)
* [  Cloud Storage ](/docs/plugins/firebase/cloud-storage/)
* [  Performance Monitoring ](/docs/plugins/firebase/performance-monitoring/)
* [  Remote Config ](/docs/plugins/firebase/remote-config/)
* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* [  Assist ](/docs/cloud/assist/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

* [  FAQ ](#faq)
* [  Firebase JavaScript SDK ](#firebase-javascript-sdk)
* [  Demo ](#demo)
* [  Starter templates ](#starter-templates)
* [  Usage ](#usage)
* [  API ](#api)
* [  Type Aliases ](#type-aliases)
* [  Enums ](#enums)
* [  Changelog ](#changelog)
* [  License ](#license)
* [  Credits ](#credits)

# @capacitor-firebase/authentication[¶](#capacitor-firebaseauthentication "Permanent link")

Unofficial Capacitor plugin for [Firebase Authentication](https://firebase.google.com/docs/auth).[1](#fn:1)

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 8.x.x          | \>=8.x.x          | Active support |
| 7.x.x          | 7.x.x             | Deprecated     |
| 6.x.x          | 6.x.x             | Deprecated     |
| 5.x.x          | 5.x.x             | Deprecated     |
| 1.x.x          | 4.x.x             | Deprecated     |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1)Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capacitor-firebase/authentication` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:

`[](#%5F%5Fcodelineno-2-1)npm install @capacitor-firebase/authentication firebase
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

Add Firebase to your project if you haven't already ([Android](https://github.com/capawesome-team/capacitor-firebase/blob/main/docs/firebase-setup.md#android) / [iOS](https://github.com/capawesome-team/capacitor-firebase/blob/main/docs/firebase-setup.md#ios) / [Web](https://github.com/capawesome-team/capacitor-firebase/blob/main/docs/firebase-setup.md#web)).

On **iOS**, verify that this function is included in your app's `AppDelegate.swift`:

`[](#%5F%5Fcodelineno-3-1)func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
[](#%5F%5Fcodelineno-3-2)  return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
[](#%5F%5Fcodelineno-3-3)}
`

**Attention**: If you use this plugin on **iOS** in combination with `@capacitor-firebase/messaging`, then add the following to your app's `AppDelegate.swift`:

`[](#%5F%5Fcodelineno-4-1)+ import FirebaseAuth
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
[](#%5F%5Fcodelineno-4-4)+    if Auth.auth().canHandle(url) {
[](#%5F%5Fcodelineno-4-5)+      return true
[](#%5F%5Fcodelineno-4-6)+    }
[](#%5F%5Fcodelineno-4-7)    return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
[](#%5F%5Fcodelineno-4-8)}
`

The further installation steps depend on the selected authentication method:

* [Apple Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-apple.md)
* [Facebook Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-facebook.md)
* [Game Center Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-game-center.md)
* [GitHub Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-github.md)
* [Google Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-google.md)
* [Microsoft Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-microsoft.md)
* [OpenID Connect Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-oidc.md)
* [Play Games Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-play-games.md)
* [Twitter Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-twitter.md)
* [Yahoo Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-yahoo.md)
* [Anonymous Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-anonymous.md)
* [Email Link Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-email-link.md)
* [Phone Number Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-phone.md)
* [Custom Token Sign-In](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/setup-custom-token.md)

**Attention**: Please note that this plugin uses third-party SDKs to offer native sign-in. These SDKs can initialize on their own and collect various data. For more information, see [Third-Party SDKs](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/third-party-sdks.md).

## Configuration[¶](#configuration "Permanent link")

These configuration values are available:

| Prop               | Type       | Description                                                                                                                                                                                                                                                                                                    | Default | Since |
| ------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **authDomain**     | string     | Configure the custom auth domain you want to use. Only available for Android and iOS.                                                                                                                                                                                                                          | 7.3.0   |       |
| **skipNativeAuth** | boolean    | Configure whether the plugin should skip the native authentication. Only needed if you want to use the Firebase JavaScript SDK. This configuration option has no effect on Firebase account linking. **Note that the plugin may behave differently across the platforms.** Only available for Android and iOS. | false   | 0.1.0 |
| **providers**      | string\[\] | Configure the providers that should be loaded by the plugin. Possible values: \["apple.com", "facebook.com", "gc.apple.com", "github.com", "google.com", "microsoft.com", "playgames.google.com", "twitter.com", "yahoo.com", "phone"\] Only available for Android and iOS.                                    | \[\]    | 0.1.0 |

### Examples[¶](#examples "Permanent link")

In `capacitor.config.json`:

`[](#%5F%5Fcodelineno-5-1){
[](#%5F%5Fcodelineno-5-2)  "plugins": {
[](#%5F%5Fcodelineno-5-3)    "FirebaseAuthentication": {
[](#%5F%5Fcodelineno-5-4)      "authDomain": undefined,
[](#%5F%5Fcodelineno-5-5)      "skipNativeAuth": false,
[](#%5F%5Fcodelineno-5-6)      "providers": ["apple.com", "facebook.com"]
[](#%5F%5Fcodelineno-5-7)    }
[](#%5F%5Fcodelineno-5-8)  }
[](#%5F%5Fcodelineno-5-9)}
`

In `capacitor.config.ts`:

`[](#%5F%5Fcodelineno-6-1)/// <reference types="@capacitor-firebase/authentication" />
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)import { CapacitorConfig } from '@capacitor/cli';
[](#%5F%5Fcodelineno-6-4)
[](#%5F%5Fcodelineno-6-5)const config: CapacitorConfig = {
[](#%5F%5Fcodelineno-6-6)  plugins: {
[](#%5F%5Fcodelineno-6-7)    FirebaseAuthentication: {
[](#%5F%5Fcodelineno-6-8)      authDomain: undefined,
[](#%5F%5Fcodelineno-6-9)      skipNativeAuth: false,
[](#%5F%5Fcodelineno-6-10)      providers: ["apple.com", "facebook.com"],
[](#%5F%5Fcodelineno-6-11)    },
[](#%5F%5Fcodelineno-6-12)  },
[](#%5F%5Fcodelineno-6-13)};
[](#%5F%5Fcodelineno-6-14)
[](#%5F%5Fcodelineno-6-15)export default config;
`

## FAQ[¶](#faq "Permanent link")

1. **What does this plugin do?**  
 This plugin enables the use of [Firebase Authentication](https://firebase.google.com/docs/auth) in a Capacitor app. It uses the Firebase SDK for [Java](https://firebase.google.com/docs/reference/android) (Android), [Swift](https://firebase.google.com/docs/reference/swift) (iOS) and [JavaScript](https://firebase.google.com/docs/reference/js).
2. **What is the difference between the web implementation of this plugin and the Firebase JS SDK?**  
 The web implementation of this plugin encapsulates the Firebase JS SDK and enables a consistent interface across all platforms. You can decide if you prefer to use the web implementation or the Firebase JS SDK.
3. **What is the difference between the native and web authentication?**  
 For web authentication, the Firebase JS SDK is used. This only works to a limited extent on Android and iOS in the WebViews (see [here](https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html)). For native authentication, the native SDKs from Firebase, Google, etc. are used. These offer all the functionalities that the Firebase JS SDK also offers on the web. However, after a login with the native SDK, the user is only logged in on the native layer of the app. If the user should also be logged in on the web layer (for example to access Cloud Firestore via Firebase JS SDK), additional steps are required (see [here](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/firebase-js-sdk.md)).
4. **How can I use this plugin with the Firebase JavaScript SDK?**  
 See [here](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/firebase-js-sdk.md).

## Firebase JavaScript SDK[¶](#firebase-javascript-sdk "Permanent link")

[Here](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/docs/firebase-js-sdk.md) you can find information on how to use the plugin with the Firebase JS SDK.

## Demo[¶](#demo "Permanent link")

A working example can be found here: [robingenz/capacitor-firebase-authentication-demo](https://github.com/robingenz/capacitor-firebase-authentication-demo)

## Starter templates[¶](#starter-templates "Permanent link")

The following starter templates are available:

* [Ionstarter Angular Firebase](https://ionstarter.dev/)

## Usage[¶](#usage "Permanent link")

`` [](#%5F%5Fcodelineno-7-1)import { FirebaseAuthentication } from '@capacitor-firebase/authentication';
[](#%5F%5Fcodelineno-7-2)
[](#%5F%5Fcodelineno-7-3)const applyActionCode = async () => {
[](#%5F%5Fcodelineno-7-4)  await FirebaseAuthentication.applyActionCode({ oobCode: '1234' });
[](#%5F%5Fcodelineno-7-5)};
[](#%5F%5Fcodelineno-7-6)
[](#%5F%5Fcodelineno-7-7)const createUserWithEmailAndPassword = async () => {
[](#%5F%5Fcodelineno-7-8)  const result = await FirebaseAuthentication.createUserWithEmailAndPassword({
[](#%5F%5Fcodelineno-7-9)    email: 'mail@exmaple.com',
[](#%5F%5Fcodelineno-7-10)    password: '1234',
[](#%5F%5Fcodelineno-7-11)  });
[](#%5F%5Fcodelineno-7-12)  return result.user;
[](#%5F%5Fcodelineno-7-13)};
[](#%5F%5Fcodelineno-7-14)
[](#%5F%5Fcodelineno-7-15)const confirmPasswordReset = async () => {
[](#%5F%5Fcodelineno-7-16)  await FirebaseAuthentication.confirmPasswordReset({
[](#%5F%5Fcodelineno-7-17)    oobCode: '1234',
[](#%5F%5Fcodelineno-7-18)    newPassword: '4321',
[](#%5F%5Fcodelineno-7-19)  });
[](#%5F%5Fcodelineno-7-20)};
[](#%5F%5Fcodelineno-7-21)
[](#%5F%5Fcodelineno-7-22)const deleteUser = async () => {
[](#%5F%5Fcodelineno-7-23)  await FirebaseAuthentication.deleteUser();
[](#%5F%5Fcodelineno-7-24)};
[](#%5F%5Fcodelineno-7-25)
[](#%5F%5Fcodelineno-7-26)const fetchSignInMethodsForEmail = async () => {
[](#%5F%5Fcodelineno-7-27)  const result = await FirebaseAuthentication.fetchSignInMethodsForEmail({
[](#%5F%5Fcodelineno-7-28)    email: 'mail@example.tld',
[](#%5F%5Fcodelineno-7-29)  });
[](#%5F%5Fcodelineno-7-30)  return result.signInMethods;
[](#%5F%5Fcodelineno-7-31)};
[](#%5F%5Fcodelineno-7-32)
[](#%5F%5Fcodelineno-7-33)const getCurrentUser = async () => {
[](#%5F%5Fcodelineno-7-34)  const result = await FirebaseAuthentication.getCurrentUser();
[](#%5F%5Fcodelineno-7-35)  return result.user;
[](#%5F%5Fcodelineno-7-36)};
[](#%5F%5Fcodelineno-7-37)
[](#%5F%5Fcodelineno-7-38)const getPendingAuthResult = async () => {
[](#%5F%5Fcodelineno-7-39)  const result = await FirebaseAuthentication.getPendingAuthResult();
[](#%5F%5Fcodelineno-7-40)  return result.user;
[](#%5F%5Fcodelineno-7-41)};
[](#%5F%5Fcodelineno-7-42)
[](#%5F%5Fcodelineno-7-43)const getIdToken = async () => {
[](#%5F%5Fcodelineno-7-44)  const currentUser = await getCurrentUser();
[](#%5F%5Fcodelineno-7-45)  if (!currentUser) {
[](#%5F%5Fcodelineno-7-46)    return;
[](#%5F%5Fcodelineno-7-47)  }
[](#%5F%5Fcodelineno-7-48)  const result = await FirebaseAuthentication.getIdToken();
[](#%5F%5Fcodelineno-7-49)  return result.token;
[](#%5F%5Fcodelineno-7-50)};
[](#%5F%5Fcodelineno-7-51)
[](#%5F%5Fcodelineno-7-52)const getPendingAuthResult = async () => {
[](#%5F%5Fcodelineno-7-53)  const result = await FirebaseAuthentication.getPendingAuthResult();
[](#%5F%5Fcodelineno-7-54)  return result.user;
[](#%5F%5Fcodelineno-7-55)};
[](#%5F%5Fcodelineno-7-56)
[](#%5F%5Fcodelineno-7-57)const sendEmailVerification = async () => {
[](#%5F%5Fcodelineno-7-58)  const currentUser = await getCurrentUser();
[](#%5F%5Fcodelineno-7-59)  if (!currentUser) {
[](#%5F%5Fcodelineno-7-60)    return;
[](#%5F%5Fcodelineno-7-61)  }
[](#%5F%5Fcodelineno-7-62)  await FirebaseAuthentication.sendEmailVerification();
[](#%5F%5Fcodelineno-7-63)};
[](#%5F%5Fcodelineno-7-64)
[](#%5F%5Fcodelineno-7-65)const sendPasswordResetEmail = async () => {
[](#%5F%5Fcodelineno-7-66)  await FirebaseAuthentication.sendPasswordResetEmail({
[](#%5F%5Fcodelineno-7-67)    email: 'mail@example.com',
[](#%5F%5Fcodelineno-7-68)  });
[](#%5F%5Fcodelineno-7-69)};
[](#%5F%5Fcodelineno-7-70)
[](#%5F%5Fcodelineno-7-71)const sendSignInLinkToEmail = async () => {
[](#%5F%5Fcodelineno-7-72)  const email = 'mail@example.com';
[](#%5F%5Fcodelineno-7-73)  await FirebaseAuthentication.sendSignInLinkToEmail({
[](#%5F%5Fcodelineno-7-74)    email,
[](#%5F%5Fcodelineno-7-75)    actionCodeSettings: {
[](#%5F%5Fcodelineno-7-76)      // URL you want to redirect back to. The domain (www.example.com) for this
[](#%5F%5Fcodelineno-7-77)      // URL must be in the authorized domains list in the Firebase Console.
[](#%5F%5Fcodelineno-7-78)      url: 'https://www.example.com/finishSignUp?cartId=1234',
[](#%5F%5Fcodelineno-7-79)      // This must be true.
[](#%5F%5Fcodelineno-7-80)      handleCodeInApp: true,
[](#%5F%5Fcodelineno-7-81)      iOS: {
[](#%5F%5Fcodelineno-7-82)        bundleId: 'com.example.ios',
[](#%5F%5Fcodelineno-7-83)      },
[](#%5F%5Fcodelineno-7-84)      android: {
[](#%5F%5Fcodelineno-7-85)        packageName: 'com.example.android',
[](#%5F%5Fcodelineno-7-86)        installApp: true,
[](#%5F%5Fcodelineno-7-87)        minimumVersion: '12',
[](#%5F%5Fcodelineno-7-88)      },
[](#%5F%5Fcodelineno-7-89)      dynamicLinkDomain: 'example.page.link',
[](#%5F%5Fcodelineno-7-90)    },
[](#%5F%5Fcodelineno-7-91)  });
[](#%5F%5Fcodelineno-7-92)  // The link was successfully sent. Inform the user.
[](#%5F%5Fcodelineno-7-93)  // Save the email locally so you don't need to ask the user for it again
[](#%5F%5Fcodelineno-7-94)  // if they open the link on the same device.
[](#%5F%5Fcodelineno-7-95)  window.localStorage.setItem('emailForSignIn', email);
[](#%5F%5Fcodelineno-7-96)};
[](#%5F%5Fcodelineno-7-97)
[](#%5F%5Fcodelineno-7-98)const setLanguageCode = async () => {
[](#%5F%5Fcodelineno-7-99)  await FirebaseAuthentication.setLanguageCode({ languageCode: 'en-US' });
[](#%5F%5Fcodelineno-7-100)};
[](#%5F%5Fcodelineno-7-101)
[](#%5F%5Fcodelineno-7-102)const signInAnonymously = async () => {
[](#%5F%5Fcodelineno-7-103)  const result = await FirebaseAuthentication.signInAnonymously();
[](#%5F%5Fcodelineno-7-104)  return result.user;
[](#%5F%5Fcodelineno-7-105)};
[](#%5F%5Fcodelineno-7-106)
[](#%5F%5Fcodelineno-7-107)const signInWithApple = async () => {
[](#%5F%5Fcodelineno-7-108)  const result = await FirebaseAuthentication.signInWithApple();
[](#%5F%5Fcodelineno-7-109)  return result.user;
[](#%5F%5Fcodelineno-7-110)};
[](#%5F%5Fcodelineno-7-111)
[](#%5F%5Fcodelineno-7-112)const signInWithCustomToken = async () => {
[](#%5F%5Fcodelineno-7-113)  const result = await FirebaseAuthentication.signInWithCustomToken({
[](#%5F%5Fcodelineno-7-114)    token: '1234',
[](#%5F%5Fcodelineno-7-115)  });
[](#%5F%5Fcodelineno-7-116)  return result.user;
[](#%5F%5Fcodelineno-7-117)};
[](#%5F%5Fcodelineno-7-118)
[](#%5F%5Fcodelineno-7-119)const signInWithEmailAndPassword = async () => {
[](#%5F%5Fcodelineno-7-120)  const result = await FirebaseAuthentication.signInWithEmailAndPassword({
[](#%5F%5Fcodelineno-7-121)    email: 'mail@example.com',
[](#%5F%5Fcodelineno-7-122)    password: '1234',
[](#%5F%5Fcodelineno-7-123)  });
[](#%5F%5Fcodelineno-7-124)  return result.user;
[](#%5F%5Fcodelineno-7-125)};
[](#%5F%5Fcodelineno-7-126)
[](#%5F%5Fcodelineno-7-127)const signInWithEmailLink = async () => {
[](#%5F%5Fcodelineno-7-128)  // Get the email if available. This should be available if the user completes
[](#%5F%5Fcodelineno-7-129)  // the flow on the same device where they started it.
[](#%5F%5Fcodelineno-7-130)  const emailLink = window.location.href;
[](#%5F%5Fcodelineno-7-131)  // Confirm the link is a sign-in with email link.
[](#%5F%5Fcodelineno-7-132)  const { isSignInWithEmailLink } =
[](#%5F%5Fcodelineno-7-133)    await FirebaseAuthentication.isSignInWithEmailLink({
[](#%5F%5Fcodelineno-7-134)      emailLink,
[](#%5F%5Fcodelineno-7-135)    });
[](#%5F%5Fcodelineno-7-136)  if (!isSignInWithEmailLink) {
[](#%5F%5Fcodelineno-7-137)    return;
[](#%5F%5Fcodelineno-7-138)  }
[](#%5F%5Fcodelineno-7-139)  let email = window.localStorage.getItem('emailForSignIn');
[](#%5F%5Fcodelineno-7-140)  if (!email) {
[](#%5F%5Fcodelineno-7-141)    // User opened the link on a different device. To prevent session fixation
[](#%5F%5Fcodelineno-7-142)    // attacks, ask the user to provide the associated email again.
[](#%5F%5Fcodelineno-7-143)    email = window.prompt('Please provide your email for confirmation.');
[](#%5F%5Fcodelineno-7-144)  }
[](#%5F%5Fcodelineno-7-145)  // The client SDK will parse the code from the link for you.
[](#%5F%5Fcodelineno-7-146)  const result = await FirebaseAuthentication.signInWithEmailLink({
[](#%5F%5Fcodelineno-7-147)    email,
[](#%5F%5Fcodelineno-7-148)    emailLink,
[](#%5F%5Fcodelineno-7-149)  });
[](#%5F%5Fcodelineno-7-150)  // Clear email from storage.
[](#%5F%5Fcodelineno-7-151)  window.localStorage.removeItem('emailForSignIn');
[](#%5F%5Fcodelineno-7-152)  return result.user;
[](#%5F%5Fcodelineno-7-153)};
[](#%5F%5Fcodelineno-7-154)
[](#%5F%5Fcodelineno-7-155)const signInWithFacebook = async () => {
[](#%5F%5Fcodelineno-7-156)  const result = await FirebaseAuthentication.signInWithFacebook();
[](#%5F%5Fcodelineno-7-157)  return result.user;
[](#%5F%5Fcodelineno-7-158)};
[](#%5F%5Fcodelineno-7-159)
[](#%5F%5Fcodelineno-7-160)const signInWithGameCenter = async () => {
[](#%5F%5Fcodelineno-7-161)  const result = await FirebaseAuthentication.signInWithGameCenter();
[](#%5F%5Fcodelineno-7-162)  return result.user;
[](#%5F%5Fcodelineno-7-163)};
[](#%5F%5Fcodelineno-7-164)
[](#%5F%5Fcodelineno-7-165)const signInWithGithub = async () => {
[](#%5F%5Fcodelineno-7-166)  const result = await FirebaseAuthentication.signInWithGithub();
[](#%5F%5Fcodelineno-7-167)  return result.user;
[](#%5F%5Fcodelineno-7-168)};
[](#%5F%5Fcodelineno-7-169)
[](#%5F%5Fcodelineno-7-170)const signInWithGoogle = async () => {
[](#%5F%5Fcodelineno-7-171)  const result = await FirebaseAuthentication.signInWithGoogle();
[](#%5F%5Fcodelineno-7-172)  return result.user;
[](#%5F%5Fcodelineno-7-173)};
[](#%5F%5Fcodelineno-7-174)
[](#%5F%5Fcodelineno-7-175)const signInWithMicrosoft = async () => {
[](#%5F%5Fcodelineno-7-176)  const result = await FirebaseAuthentication.signInWithMicrosoft();
[](#%5F%5Fcodelineno-7-177)  return result.user;
[](#%5F%5Fcodelineno-7-178)};
[](#%5F%5Fcodelineno-7-179)
[](#%5F%5Fcodelineno-7-180)const signInWithOpenIdConnect = async () => {
[](#%5F%5Fcodelineno-7-181)  const result = await FirebaseAuthentication.signInWithOpenIdConnect({
[](#%5F%5Fcodelineno-7-182)    providerId: 'oidc.example.com',
[](#%5F%5Fcodelineno-7-183)  });
[](#%5F%5Fcodelineno-7-184)  return result.user;
[](#%5F%5Fcodelineno-7-185)};
[](#%5F%5Fcodelineno-7-186)
[](#%5F%5Fcodelineno-7-187)const signInWithPlayGames = async () => {
[](#%5F%5Fcodelineno-7-188)  const result = await FirebaseAuthentication.signInWithPlayGames();
[](#%5F%5Fcodelineno-7-189)  return result.user;
[](#%5F%5Fcodelineno-7-190)};
[](#%5F%5Fcodelineno-7-191)
[](#%5F%5Fcodelineno-7-192)const signInWithPhoneNumber = async () => {
[](#%5F%5Fcodelineno-7-193)  return new Promise(async resolve => {
[](#%5F%5Fcodelineno-7-194)    // Attach `phoneCodeSent` listener to be notified as soon as the SMS is sent
[](#%5F%5Fcodelineno-7-195)    await FirebaseAuthentication.addListener('phoneCodeSent', async event => {
[](#%5F%5Fcodelineno-7-196)      // Ask the user for the SMS code
[](#%5F%5Fcodelineno-7-197)      const verificationCode = window.prompt(
[](#%5F%5Fcodelineno-7-198)        'Please enter the verification code that was sent to your mobile device.',
[](#%5F%5Fcodelineno-7-199)      );
[](#%5F%5Fcodelineno-7-200)      // Confirm the verification code
[](#%5F%5Fcodelineno-7-201)      const result = await FirebaseAuthentication.confirmVerificationCode({
[](#%5F%5Fcodelineno-7-202)        verificationId: event.verificationId,
[](#%5F%5Fcodelineno-7-203)        verificationCode,
[](#%5F%5Fcodelineno-7-204)      });
[](#%5F%5Fcodelineno-7-205)      resolve(result.user);
[](#%5F%5Fcodelineno-7-206)    });
[](#%5F%5Fcodelineno-7-207)    // Attach `phoneVerificationCompleted` listener to be notified if phone verification could be finished automatically
[](#%5F%5Fcodelineno-7-208)    await FirebaseAuthentication.addListener(
[](#%5F%5Fcodelineno-7-209)      'phoneVerificationCompleted',
[](#%5F%5Fcodelineno-7-210)      async event => {
[](#%5F%5Fcodelineno-7-211)        resolve(event.result.user);
[](#%5F%5Fcodelineno-7-212)      },
[](#%5F%5Fcodelineno-7-213)    );
[](#%5F%5Fcodelineno-7-214)    // Start sign in with phone number and send the SMS
[](#%5F%5Fcodelineno-7-215)    await FirebaseAuthentication.signInWithPhoneNumber({
[](#%5F%5Fcodelineno-7-216)      phoneNumber: '123456789',
[](#%5F%5Fcodelineno-7-217)    });
[](#%5F%5Fcodelineno-7-218)  });
[](#%5F%5Fcodelineno-7-219)};
[](#%5F%5Fcodelineno-7-220)
[](#%5F%5Fcodelineno-7-221)const signInWithTwitter = async () => {
[](#%5F%5Fcodelineno-7-222)  const result = await FirebaseAuthentication.signInWithTwitter();
[](#%5F%5Fcodelineno-7-223)  return result.user;
[](#%5F%5Fcodelineno-7-224)};
[](#%5F%5Fcodelineno-7-225)
[](#%5F%5Fcodelineno-7-226)const signInWithYahoo = async () => {
[](#%5F%5Fcodelineno-7-227)  const result = await FirebaseAuthentication.signInWithYahoo();
[](#%5F%5Fcodelineno-7-228)  return result.user;
[](#%5F%5Fcodelineno-7-229)};
[](#%5F%5Fcodelineno-7-230)
[](#%5F%5Fcodelineno-7-231)const signOut = async () => {
[](#%5F%5Fcodelineno-7-232)  await FirebaseAuthentication.signOut();
[](#%5F%5Fcodelineno-7-233)};
[](#%5F%5Fcodelineno-7-234)
[](#%5F%5Fcodelineno-7-235)const updateEmail = async () => {
[](#%5F%5Fcodelineno-7-236)  const currentUser = await getCurrentUser();
[](#%5F%5Fcodelineno-7-237)  if (!currentUser) {
[](#%5F%5Fcodelineno-7-238)    return;
[](#%5F%5Fcodelineno-7-239)  }
[](#%5F%5Fcodelineno-7-240)  await FirebaseAuthentication.updateEmail({
[](#%5F%5Fcodelineno-7-241)    newEmail: 'new.mail@example.com',
[](#%5F%5Fcodelineno-7-242)  });
[](#%5F%5Fcodelineno-7-243)};
[](#%5F%5Fcodelineno-7-244)
[](#%5F%5Fcodelineno-7-245)const updatePassword = async () => {
[](#%5F%5Fcodelineno-7-246)  const currentUser = await getCurrentUser();
[](#%5F%5Fcodelineno-7-247)  if (!currentUser) {
[](#%5F%5Fcodelineno-7-248)    return;
[](#%5F%5Fcodelineno-7-249)  }
[](#%5F%5Fcodelineno-7-250)  await FirebaseAuthentication.updatePassword({
[](#%5F%5Fcodelineno-7-251)    newPassword: '4321',
[](#%5F%5Fcodelineno-7-252)  });
[](#%5F%5Fcodelineno-7-253)};
[](#%5F%5Fcodelineno-7-254)
[](#%5F%5Fcodelineno-7-255)const useAppLanguage = async () => {
[](#%5F%5Fcodelineno-7-256)  await FirebaseAuthentication.useAppLanguage();
[](#%5F%5Fcodelineno-7-257)};
[](#%5F%5Fcodelineno-7-258)
[](#%5F%5Fcodelineno-7-259)const useEmulator = async () => {
[](#%5F%5Fcodelineno-7-260)  await FirebaseAuthentication.useEmulator({
[](#%5F%5Fcodelineno-7-261)    host: '10.0.2.2',
[](#%5F%5Fcodelineno-7-262)    port: 9099,
[](#%5F%5Fcodelineno-7-263)  });
[](#%5F%5Fcodelineno-7-264)};
[](#%5F%5Fcodelineno-7-265)
[](#%5F%5Fcodelineno-7-266)const verifyBeforeUpdateEmail = async () => {
[](#%5F%5Fcodelineno-7-267)  const currentUser = await getCurrentUser();
[](#%5F%5Fcodelineno-7-268)  if (!currentUser) {
[](#%5F%5Fcodelineno-7-269)    return;
[](#%5F%5Fcodelineno-7-270)  }
[](#%5F%5Fcodelineno-7-271)  await FirebaseAuthentication.verifyBeforeUpdateEmail({
[](#%5F%5Fcodelineno-7-272)    newEmail: 'new.mail@example.com',
[](#%5F%5Fcodelineno-7-273)    actionCodeSettings: {
[](#%5F%5Fcodelineno-7-274)      url: 'https://www.example.com/cart?email=user@example.com&cartId=123',
[](#%5F%5Fcodelineno-7-275)      iOS: {
[](#%5F%5Fcodelineno-7-276)        bundleId: 'com.example.ios'
[](#%5F%5Fcodelineno-7-277)      },
[](#%5F%5Fcodelineno-7-278)      android: {
[](#%5F%5Fcodelineno-7-279)        packageName: 'com.example.android',
[](#%5F%5Fcodelineno-7-280)        installApp: true,
[](#%5F%5Fcodelineno-7-281)        minimumVersion: '12'
[](#%5F%5Fcodelineno-7-282)      },
[](#%5F%5Fcodelineno-7-283)      handleCodeInApp: true
[](#%5F%5Fcodelineno-7-284)    }
[](#%5F%5Fcodelineno-7-285)  });
[](#%5F%5Fcodelineno-7-286)};
 ``

## API[¶](#api "Permanent link")

* [applyActionCode(...)](#applyactioncode)
* [confirmPasswordReset(...)](#confirmpasswordreset)
* [confirmVerificationCode(...)](#confirmverificationcode)
* [createUserWithEmailAndPassword(...)](#createuserwithemailandpassword)
* [deleteUser()](#deleteuser)
* [fetchSignInMethodsForEmail(...)](#fetchsigninmethodsforemail)
* [getCurrentUser()](#getcurrentuser)
* [getPendingAuthResult()](#getpendingauthresult)
* [getIdToken(...)](#getidtoken)
* [getIdTokenResult(...)](#getidtokenresult)
* [getRedirectResult()](#getredirectresult)
* [getTenantId()](#gettenantid)
* [isSignInWithEmailLink(...)](#issigninwithemaillink)
* [linkWithApple(...)](#linkwithapple)
* [linkWithEmailAndPassword(...)](#linkwithemailandpassword)
* [linkWithEmailLink(...)](#linkwithemaillink)
* [linkWithFacebook(...)](#linkwithfacebook)
* [linkWithGameCenter(...)](#linkwithgamecenter)
* [linkWithGithub(...)](#linkwithgithub)
* [linkWithGoogle(...)](#linkwithgoogle)
* [linkWithMicrosoft(...)](#linkwithmicrosoft)
* [linkWithOpenIdConnect(...)](#linkwithopenidconnect)
* [linkWithPhoneNumber(...)](#linkwithphonenumber)
* [linkWithPlayGames(...)](#linkwithplaygames)
* [linkWithTwitter(...)](#linkwithtwitter)
* [linkWithYahoo(...)](#linkwithyahoo)
* [reload()](#reload)
* [revokeAccessToken(...)](#revokeaccesstoken)
* [sendEmailVerification(...)](#sendemailverification)
* [sendPasswordResetEmail(...)](#sendpasswordresetemail)
* [sendSignInLinkToEmail(...)](#sendsigninlinktoemail)
* [setLanguageCode(...)](#setlanguagecode)
* [setPersistence(...)](#setpersistence)
* [setTenantId(...)](#settenantid)
* [signInAnonymously()](#signinanonymously)
* [signInWithApple(...)](#signinwithapple)
* [signInWithCustomToken(...)](#signinwithcustomtoken)
* [signInWithEmailAndPassword(...)](#signinwithemailandpassword)
* [signInWithEmailLink(...)](#signinwithemaillink)
* [signInWithFacebook(...)](#signinwithfacebook)
* [signInWithGameCenter(...)](#signinwithgamecenter)
* [signInWithGithub(...)](#signinwithgithub)
* [signInWithGoogle(...)](#signinwithgoogle)
* [signInWithMicrosoft(...)](#signinwithmicrosoft)
* [signInWithOpenIdConnect(...)](#signinwithopenidconnect)
* [signInWithPhoneNumber(...)](#signinwithphonenumber)
* [signInWithPlayGames(...)](#signinwithplaygames)
* [signInWithTwitter(...)](#signinwithtwitter)
* [signInWithYahoo(...)](#signinwithyahoo)
* [signOut()](#signout)
* [unlink(...)](#unlink)
* [updateEmail(...)](#updateemail)
* [updatePassword(...)](#updatepassword)
* [updateProfile(...)](#updateprofile)
* [useAppLanguage()](#useapplanguage)
* [useEmulator(...)](#useemulator)
* [verifyBeforeUpdateEmail(...)](#verifybeforeupdateemail)
* [checkAppTrackingTransparencyPermission()](#checkapptrackingtransparencypermission)
* [requestAppTrackingTransparencyPermission()](#requestapptrackingtransparencypermission)
* [addListener('authStateChange', ...)](#addlistenerauthstatechange-)
* [addListener('idTokenChange', ...)](#addlisteneridtokenchange-)
* [addListener('phoneVerificationCompleted', ...)](#addlistenerphoneverificationcompleted-)
* [addListener('phoneVerificationFailed', ...)](#addlistenerphoneverificationfailed-)
* [addListener('phoneCodeSent', ...)](#addlistenerphonecodesent-)
* [removeAllListeners()](#removealllisteners)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)
* [Enums](#enums)

### applyActionCode(...)[¶](#applyactioncode "Permanent link")

`[](#%5F%5Fcodelineno-8-1)applyActionCode(options: ApplyActionCodeOptions) => Promise<void>
`

Applies a verification code sent to the user by email.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [ApplyActionCodeOptions](#applyactioncodeoptions) |

**Since:** 0.2.2

---

### confirmPasswordReset(...)[¶](#confirmpasswordreset "Permanent link")

`[](#%5F%5Fcodelineno-9-1)confirmPasswordReset(options: ConfirmPasswordResetOptions) => Promise<void>
`

Completes the password reset process.

| Param       | Type                                                        |
| ----------- | ----------------------------------------------------------- |
| **options** | [ConfirmPasswordResetOptions](#confirmpasswordresetoptions) |

**Since:** 0.2.2

---

### confirmVerificationCode(...)[¶](#confirmverificationcode "Permanent link")

`[](#%5F%5Fcodelineno-10-1)confirmVerificationCode(options: ConfirmVerificationCodeOptions) => Promise<SignInResult>
`

Finishes the phone number verification process.

| Param       | Type                                                              |
| ----------- | ----------------------------------------------------------------- |
| **options** | [ConfirmVerificationCodeOptions](#confirmverificationcodeoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 5.0.0

---

### createUserWithEmailAndPassword(...)[¶](#createuserwithemailandpassword "Permanent link")

`[](#%5F%5Fcodelineno-11-1)createUserWithEmailAndPassword(options: CreateUserWithEmailAndPasswordOptions) => Promise<SignInResult>
`

Creates a new user account with email and password. If the new account was created, the user is signed in automatically.

| Param       | Type                                                                            |
| ----------- | ------------------------------------------------------------------------------- |
| **options** | [CreateUserWithEmailAndPasswordOptions](#createuserwithemailandpasswordoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.2.2

---

### deleteUser()[¶](#deleteuser "Permanent link")

`[](#%5F%5Fcodelineno-12-1)deleteUser() => Promise<void>
`

Deletes and signs out the user.

**Since:** 1.3.0

---

### fetchSignInMethodsForEmail(...)[¶](#fetchsigninmethodsforemail "Permanent link")

`[](#%5F%5Fcodelineno-13-1)fetchSignInMethodsForEmail(options: FetchSignInMethodsForEmailOptions) => Promise<FetchSignInMethodsForEmailResult>
`

Fetches the sign-in methods for an email address.

| Param       | Type                                                                    |
| ----------- | ----------------------------------------------------------------------- |
| **options** | [FetchSignInMethodsForEmailOptions](#fetchsigninmethodsforemailoptions) |

**Returns:** `Promise<[FetchSignInMethodsForEmailResult](#fetchsigninmethodsforemailresult)>`

**Since:** 6.0.0

---

### getCurrentUser()[¶](#getcurrentuser "Permanent link")

`[](#%5F%5Fcodelineno-14-1)getCurrentUser() => Promise<GetCurrentUserResult>
`

Fetches the currently signed-in user.

**Returns:** `Promise<[GetCurrentUserResult](#getcurrentuserresult)>`

**Since:** 0.1.0

---

### getPendingAuthResult()[¶](#getpendingauthresult "Permanent link")

`[](#%5F%5Fcodelineno-15-1)getPendingAuthResult() => Promise<SignInResult>
`

Returns the [SignInResult](#signinresult) if your app launched a web sign-in flow and the OS cleans up the app while in the background.

Only available for Android.

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 6.0.0

---

### getIdToken(...)[¶](#getidtoken "Permanent link")

`[](#%5F%5Fcodelineno-16-1)getIdToken(options?: GetIdTokenOptions | undefined) => Promise<GetIdTokenResult>
`

Fetches the Firebase Auth ID Token for the currently signed-in user.

| Param       | Type                                    |
| ----------- | --------------------------------------- |
| **options** | [GetIdTokenOptions](#getidtokenoptions) |

**Returns:** `Promise<[GetIdTokenResult](#getidtokenresult)>`

**Since:** 0.1.0

---

### getIdTokenResult(...)[¶](#getidtokenresult "Permanent link")

`[](#%5F%5Fcodelineno-17-1)getIdTokenResult(options?: GetIdTokenResultOptions | undefined) => Promise<GetIdTokenResultResult>
`

Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service.

| Param       | Type                                                |
| ----------- | --------------------------------------------------- |
| **options** | [GetIdTokenResultOptions](#getidtokenresultoptions) |

**Returns:** `Promise<[GetIdTokenResultResult](#getidtokenresultresult)>`

**Since:** 7.4.0

---

### getRedirectResult()[¶](#getredirectresult "Permanent link")

`[](#%5F%5Fcodelineno-18-1)getRedirectResult() => Promise<SignInResult>
`

Returns the [SignInResult](#signinresult) from the redirect-based sign-in flow.

If sign-in was unsuccessful, fails with an error. If no redirect operation was called, returns a [SignInResult](#signinresult) with a null user.

Only available for Web.

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.3.0

---

### getTenantId()[¶](#gettenantid "Permanent link")

`[](#%5F%5Fcodelineno-19-1)getTenantId() => Promise<GetTenantIdResult>
`

Get the tenant id.

**Returns:** `Promise<[GetTenantIdResult](#gettenantidresult)>`

**Since:** 1.1.0

---

### isSignInWithEmailLink(...)[¶](#issigninwithemaillink "Permanent link")

`[](#%5F%5Fcodelineno-20-1)isSignInWithEmailLink(options: IsSignInWithEmailLinkOptions) => Promise<IsSignInWithEmailLinkResult>
`

Checks if an incoming link is a sign-in with email link suitable for `signInWithEmailLink`.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [IsSignInWithEmailLinkOptions](#issigninwithemaillinkoptions) |

**Returns:** `Promise<[IsSignInWithEmailLinkResult](#issigninwithemaillinkresult)>`

**Since:** 1.1.0

---

### linkWithApple(...)[¶](#linkwithapple "Permanent link")

`[](#%5F%5Fcodelineno-21-1)linkWithApple(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Apple authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithEmailAndPassword(...)[¶](#linkwithemailandpassword "Permanent link")

`[](#%5F%5Fcodelineno-22-1)linkWithEmailAndPassword(options: LinkWithEmailAndPasswordOptions) => Promise<LinkResult>
`

Links the user account with Email authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                                                |
| ----------- | ------------------------------------------------------------------- |
| **options** | [LinkWithEmailAndPasswordOptions](#linkwithemailandpasswordoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithEmailLink(...)[¶](#linkwithemaillink "Permanent link")

`[](#%5F%5Fcodelineno-23-1)linkWithEmailLink(options: LinkWithEmailLinkOptions) => Promise<LinkResult>
`

Links the user account with Email authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                                  |
| ----------- | ----------------------------------------------------- |
| **options** | [LinkWithEmailLinkOptions](#linkwithemaillinkoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithFacebook(...)[¶](#linkwithfacebook "Permanent link")

`[](#%5F%5Fcodelineno-24-1)linkWithFacebook(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Facebook authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithGameCenter(...)[¶](#linkwithgamecenter "Permanent link")

`[](#%5F%5Fcodelineno-25-1)linkWithGameCenter(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Game Center authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

Only available for iOS.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.3.0

---

### linkWithGithub(...)[¶](#linkwithgithub "Permanent link")

`[](#%5F%5Fcodelineno-26-1)linkWithGithub(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with GitHub authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithGoogle(...)[¶](#linkwithgoogle "Permanent link")

`[](#%5F%5Fcodelineno-27-1)linkWithGoogle(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Google authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithMicrosoft(...)[¶](#linkwithmicrosoft "Permanent link")

`[](#%5F%5Fcodelineno-28-1)linkWithMicrosoft(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Microsoft authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithOpenIdConnect(...)[¶](#linkwithopenidconnect "Permanent link")

`[](#%5F%5Fcodelineno-29-1)linkWithOpenIdConnect(options: LinkWithOpenIdConnectOptions) => Promise<LinkResult>
`

Links the user account with an OpenID Connect provider.

| Param       | Type                                                              |
| ----------- | ----------------------------------------------------------------- |
| **options** | [SignInWithOpenIdConnectOptions](#signinwithopenidconnectoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 6.1.0

---

### linkWithPhoneNumber(...)[¶](#linkwithphonenumber "Permanent link")

`[](#%5F%5Fcodelineno-30-1)linkWithPhoneNumber(options: LinkWithPhoneNumberOptions) => Promise<void>
`

Links the user account with Phone Number authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

Use the `phoneVerificationCompleted` listener to be notified when the verification is completed. Use the `phoneVerificationFailed` listener to be notified when the verification is failed. Use the `phoneCodeSent` listener to get the verification id.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [SignInWithPhoneNumberOptions](#signinwithphonenumberoptions) |

**Since:** 1.1.0

---

### linkWithPlayGames(...)[¶](#linkwithplaygames "Permanent link")

`[](#%5F%5Fcodelineno-31-1)linkWithPlayGames(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Play Games authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

Only available for Android.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithTwitter(...)[¶](#linkwithtwitter "Permanent link")

`[](#%5F%5Fcodelineno-32-1)linkWithTwitter(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Twitter authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### linkWithYahoo(...)[¶](#linkwithyahoo "Permanent link")

`[](#%5F%5Fcodelineno-33-1)linkWithYahoo(options?: SignInWithOAuthOptions | undefined) => Promise<LinkResult>
`

Links the user account with Yahoo authentication provider.

The user must be logged in on the native layer. The `skipNativeAuth` configuration option has no effect here.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### reload()[¶](#reload "Permanent link")

`[](#%5F%5Fcodelineno-34-1)reload() => Promise<void>
`

Reloads user account data, if signed in.

**Since:** 1.3.0

---

### revokeAccessToken(...)[¶](#revokeaccesstoken "Permanent link")

`[](#%5F%5Fcodelineno-35-1)revokeAccessToken(options: RevokeAccessTokenOptions) => Promise<void>
`

Revokes the given access token. Currently only supports Apple OAuth access tokens.

| Param       | Type                                                  |
| ----------- | ----------------------------------------------------- |
| **options** | [RevokeAccessTokenOptions](#revokeaccesstokenoptions) |

**Since:** 6.1.0

---

### sendEmailVerification(...)[¶](#sendemailverification "Permanent link")

`[](#%5F%5Fcodelineno-36-1)sendEmailVerification(options?: SendEmailVerificationOptions | undefined) => Promise<void>
`

Sends a verification email to the currently signed in user.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [SendEmailVerificationOptions](#sendemailverificationoptions) |

**Since:** 0.2.2

---

### sendPasswordResetEmail(...)[¶](#sendpasswordresetemail "Permanent link")

`[](#%5F%5Fcodelineno-37-1)sendPasswordResetEmail(options: SendPasswordResetEmailOptions) => Promise<void>
`

Sends a password reset email.

| Param       | Type                                                            |
| ----------- | --------------------------------------------------------------- |
| **options** | [SendPasswordResetEmailOptions](#sendpasswordresetemailoptions) |

**Since:** 0.2.2

---

### sendSignInLinkToEmail(...)[¶](#sendsigninlinktoemail "Permanent link")

`[](#%5F%5Fcodelineno-38-1)sendSignInLinkToEmail(options: SendSignInLinkToEmailOptions) => Promise<void>
`

Sends a sign-in email link to the user with the specified email.

To complete sign in with the email link, call `signInWithEmailLink` with the email address and the email link supplied in the email sent to the user.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [SendSignInLinkToEmailOptions](#sendsigninlinktoemailoptions) |

**Since:** 1.1.0

---

### setLanguageCode(...)[¶](#setlanguagecode "Permanent link")

`[](#%5F%5Fcodelineno-39-1)setLanguageCode(options: SetLanguageCodeOptions) => Promise<void>
`

Sets the user-facing language code for auth operations.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SetLanguageCodeOptions](#setlanguagecodeoptions) |

**Since:** 0.1.0

---

### setPersistence(...)[¶](#setpersistence "Permanent link")

`[](#%5F%5Fcodelineno-40-1)setPersistence(options: SetPersistenceOptions) => Promise<void>
`

Sets the type of persistence for the currently saved auth session.

Only available for Web.

| Param       | Type                                            |
| ----------- | ----------------------------------------------- |
| **options** | [SetPersistenceOptions](#setpersistenceoptions) |

**Since:** 5.2.0

---

### setTenantId(...)[¶](#settenantid "Permanent link")

`[](#%5F%5Fcodelineno-41-1)setTenantId(options: SetTenantIdOptions) => Promise<void>
`

Sets the tenant id.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [SetTenantIdOptions](#settenantidoptions) |

**Since:** 1.1.0

---

### signInAnonymously()[¶](#signinanonymously "Permanent link")

`[](#%5F%5Fcodelineno-42-1)signInAnonymously() => Promise<SignInResult>
`

Signs in as an anonymous user.

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### signInWithApple(...)[¶](#signinwithapple "Permanent link")

`[](#%5F%5Fcodelineno-43-1)signInWithApple(options?: SignInWithOAuthOptions | undefined) => Promise<SignInResult>
`

Starts the Apple sign-in flow.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithCustomToken(...)[¶](#signinwithcustomtoken "Permanent link")

`[](#%5F%5Fcodelineno-44-1)signInWithCustomToken(options: SignInWithCustomTokenOptions) => Promise<SignInResult>
`

Starts the Custom Token sign-in flow.

This method cannot be used in combination with `skipNativeAuth` on Android and iOS. In this case you have to use the `signInWithCustomToken` interface of the Firebase JS SDK directly.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [SignInWithCustomTokenOptions](#signinwithcustomtokenoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithEmailAndPassword(...)[¶](#signinwithemailandpassword "Permanent link")

`[](#%5F%5Fcodelineno-45-1)signInWithEmailAndPassword(options: SignInWithEmailAndPasswordOptions) => Promise<SignInResult>
`

Starts the sign-in flow using an email and password.

| Param       | Type                                                                    |
| ----------- | ----------------------------------------------------------------------- |
| **options** | [SignInWithEmailAndPasswordOptions](#signinwithemailandpasswordoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.2.2

---

### signInWithEmailLink(...)[¶](#signinwithemaillink "Permanent link")

`[](#%5F%5Fcodelineno-46-1)signInWithEmailLink(options: SignInWithEmailLinkOptions) => Promise<SignInResult>
`

Signs in using an email and sign-in email link.

| Param       | Type                                                      |
| ----------- | --------------------------------------------------------- |
| **options** | [SignInWithEmailLinkOptions](#signinwithemaillinkoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.1.0

---

### signInWithFacebook(...)[¶](#signinwithfacebook "Permanent link")

`[](#%5F%5Fcodelineno-47-1)signInWithFacebook(options?: SignInWithFacebookOptions | undefined) => Promise<SignInResult>
`

Starts the Facebook sign-in flow.

| Param       | Type                                                    |
| ----------- | ------------------------------------------------------- |
| **options** | [SignInWithFacebookOptions](#signinwithfacebookoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithGameCenter(...)[¶](#signinwithgamecenter "Permanent link")

`[](#%5F%5Fcodelineno-48-1)signInWithGameCenter(options?: SignInWithOAuthOptions | SignInOptions | undefined) => Promise<SignInResult>
`

Starts the Game Center sign-in flow.

Only available for iOS.

| Param       | Type                                                                                 |
| ----------- | ------------------------------------------------------------------------------------ |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) \| [SignInOptions](#signinoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 1.3.0

---

### signInWithGithub(...)[¶](#signinwithgithub "Permanent link")

`[](#%5F%5Fcodelineno-49-1)signInWithGithub(options?: SignInWithOAuthOptions | undefined) => Promise<SignInResult>
`

Starts the GitHub sign-in flow.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithGoogle(...)[¶](#signinwithgoogle "Permanent link")

`[](#%5F%5Fcodelineno-50-1)signInWithGoogle(options?: SignInWithGoogleOptions | undefined) => Promise<SignInResult>
`

Starts the Google sign-in flow.

| Param       | Type                                                |
| ----------- | --------------------------------------------------- |
| **options** | [SignInWithGoogleOptions](#signinwithgoogleoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithMicrosoft(...)[¶](#signinwithmicrosoft "Permanent link")

`[](#%5F%5Fcodelineno-51-1)signInWithMicrosoft(options?: SignInWithOAuthOptions | undefined) => Promise<SignInResult>
`

Starts the Microsoft sign-in flow.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithOpenIdConnect(...)[¶](#signinwithopenidconnect "Permanent link")

`[](#%5F%5Fcodelineno-52-1)signInWithOpenIdConnect(options: SignInWithOpenIdConnectOptions) => Promise<SignInResult>
`

Starts the OpenID Connect sign-in flow.

| Param       | Type                                                              |
| ----------- | ----------------------------------------------------------------- |
| **options** | [SignInWithOpenIdConnectOptions](#signinwithopenidconnectoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 6.1.0

---

### signInWithPhoneNumber(...)[¶](#signinwithphonenumber "Permanent link")

`[](#%5F%5Fcodelineno-53-1)signInWithPhoneNumber(options: SignInWithPhoneNumberOptions) => Promise<void>
`

Starts the sign-in flow using a phone number.

Use the `phoneVerificationCompleted` listener to be notified when the verification is completed. Use the `phoneVerificationFailed` listener to be notified when the verification is failed. Use the `phoneCodeSent` listener to get the verification id.

Only available for Android and iOS.

| Param       | Type                                                          |
| ----------- | ------------------------------------------------------------- |
| **options** | [SignInWithPhoneNumberOptions](#signinwithphonenumberoptions) |

**Since:** 0.1.0

---

### signInWithPlayGames(...)[¶](#signinwithplaygames "Permanent link")

`[](#%5F%5Fcodelineno-54-1)signInWithPlayGames(options?: SignInWithOAuthOptions | undefined) => Promise<SignInResult>
`

Starts the Play Games sign-in flow.

Only available for Android.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithTwitter(...)[¶](#signinwithtwitter "Permanent link")

`[](#%5F%5Fcodelineno-55-1)signInWithTwitter(options?: SignInWithOAuthOptions | undefined) => Promise<SignInResult>
`

Starts the Twitter sign-in flow.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signInWithYahoo(...)[¶](#signinwithyahoo "Permanent link")

`[](#%5F%5Fcodelineno-56-1)signInWithYahoo(options?: SignInWithOAuthOptions | undefined) => Promise<SignInResult>
`

Starts the Yahoo sign-in flow.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [SignInWithOAuthOptions](#signinwithoauthoptions) |

**Returns:** `Promise<[SignInResult](#signinresult)>`

**Since:** 0.1.0

---

### signOut()[¶](#signout "Permanent link")

`[](#%5F%5Fcodelineno-57-1)signOut() => Promise<void>
`

Starts the sign-out flow.

**Since:** 0.1.0

---

### unlink(...)[¶](#unlink "Permanent link")

`[](#%5F%5Fcodelineno-58-1)unlink(options: UnlinkOptions) => Promise<UnlinkResult>
`

Unlinks a provider from a user account.

| Param       | Type                            |
| ----------- | ------------------------------- |
| **options** | [UnlinkOptions](#unlinkoptions) |

**Returns:** `Promise<[UnlinkResult](#unlinkresult)>`

**Since:** 1.1.0

---

### updateEmail(...)[¶](#updateemail "Permanent link")

`[](#%5F%5Fcodelineno-59-1)updateEmail(options: UpdateEmailOptions) => Promise<void>
`

Updates the email address of the currently signed in user.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [UpdateEmailOptions](#updateemailoptions) |

**Since:** 0.1.0

---

### updatePassword(...)[¶](#updatepassword "Permanent link")

`[](#%5F%5Fcodelineno-60-1)updatePassword(options: UpdatePasswordOptions) => Promise<void>
`

Updates the password of the currently signed in user.

| Param       | Type                                            |
| ----------- | ----------------------------------------------- |
| **options** | [UpdatePasswordOptions](#updatepasswordoptions) |

**Since:** 0.1.0

---

### updateProfile(...)[¶](#updateprofile "Permanent link")

`[](#%5F%5Fcodelineno-61-1)updateProfile(options: UpdateProfileOptions) => Promise<void>
`

Updates a user's profile data.

| Param       | Type                                          |
| ----------- | --------------------------------------------- |
| **options** | [UpdateProfileOptions](#updateprofileoptions) |

**Since:** 1.3.0

---

### useAppLanguage()[¶](#useapplanguage "Permanent link")

`[](#%5F%5Fcodelineno-62-1)useAppLanguage() => Promise<void>
`

Sets the user-facing language code to be the default app language.

**Since:** 0.1.0

---

### useEmulator(...)[¶](#useemulator "Permanent link")

`[](#%5F%5Fcodelineno-63-1)useEmulator(options: UseEmulatorOptions) => Promise<void>
`

Instrument your app to talk to the Authentication emulator.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [UseEmulatorOptions](#useemulatoroptions) |

**Since:** 0.2.0

---

### verifyBeforeUpdateEmail(...)[¶](#verifybeforeupdateemail "Permanent link")

`[](#%5F%5Fcodelineno-64-1)verifyBeforeUpdateEmail(options: VerifyBeforeUpdateEmailOptions) => Promise<void>
`

Verifies the new email address before updating the email address of the currently signed in user.

| Param       | Type                                                              |
| ----------- | ----------------------------------------------------------------- |
| **options** | [VerifyBeforeUpdateEmailOptions](#verifybeforeupdateemailoptions) |

**Since:** 6.3.0

---

### checkAppTrackingTransparencyPermission()[¶](#checkapptrackingtransparencypermission "Permanent link")

`[](#%5F%5Fcodelineno-65-1)checkAppTrackingTransparencyPermission() => Promise<CheckAppTrackingTransparencyPermissionResult>
`

Checks the current status of app tracking transparency.

Only available on iOS.

**Returns:** `Promise<[CheckAppTrackingTransparencyPermissionResult](#checkapptrackingtransparencypermissionresult)>`

**Since:** 7.2.0

---

### requestAppTrackingTransparencyPermission()[¶](#requestapptrackingtransparencypermission "Permanent link")

`[](#%5F%5Fcodelineno-66-1)requestAppTrackingTransparencyPermission() => Promise<RequestAppTrackingTransparencyPermissionResult>
`

Opens the system dialog to authorize app tracking transparency.

**Attention:** The user may have disabled the tracking request in the device settings, see [Apple's documentation](https://support.apple.com/guide/iphone/iph4f4cbd242/ios).

Only available on iOS.

**Returns:** `Promise<[CheckAppTrackingTransparencyPermissionResult](#checkapptrackingtransparencypermissionresult)>`

**Since:** 7.2.0

---

### addListener('authStateChange', ...)[¶](#addlistenerauthstatechange "Permanent link")

`[](#%5F%5Fcodelineno-67-1)addListener(eventName: 'authStateChange', listenerFunc: AuthStateChangeListener) => Promise<PluginListenerHandle>
`

Listen for the user's sign-in state changes.

**Attention:** This listener is not triggered when the `skipNativeAuth` is used. Use the Firebase JavaScript SDK instead.

| Param            | Type                                                |
| ---------------- | --------------------------------------------------- |
| **eventName**    | 'authStateChange'                                   |
| **listenerFunc** | [AuthStateChangeListener](#authstatechangelistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.1.0

---

### addListener('idTokenChange', ...)[¶](#addlisteneridtokenchange "Permanent link")

`[](#%5F%5Fcodelineno-68-1)addListener(eventName: 'idTokenChange', listenerFunc: IdTokenChangeListener) => Promise<PluginListenerHandle>
`

Listen to ID token changes for the currently signed-in user.

**Attention:** This listener is not triggered when the `skipNativeAuth` is used. Use the Firebase JavaScript SDK instead.

| Param            | Type                                            |
| ---------------- | ----------------------------------------------- |
| **eventName**    | 'idTokenChange'                                 |
| **listenerFunc** | [IdTokenChangeListener](#idtokenchangelistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 6.3.0

---

### addListener('phoneVerificationCompleted', ...)[¶](#addlistenerphoneverificationcompleted "Permanent link")

`[](#%5F%5Fcodelineno-69-1)addListener(eventName: 'phoneVerificationCompleted', listenerFunc: PhoneVerificationCompletedListener) => Promise<PluginListenerHandle>
`

Listen for a completed phone verification.

This listener only fires in two situations: 1\. **Instant verification**: In some cases the phone number can be instantly verified without needing to send or enter a verification code. 2\. **Auto-retrieval**: On some devices Google Play services can automatically detect the incoming verification SMS and perform verification without user action.

Only available for Android.

| Param            | Type                                                                      |
| ---------------- | ------------------------------------------------------------------------- |
| **eventName**    | 'phoneVerificationCompleted'                                              |
| **listenerFunc** | [PhoneVerificationCompletedListener](#phoneverificationcompletedlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 1.3.0

---

### addListener('phoneVerificationFailed', ...)[¶](#addlistenerphoneverificationfailed "Permanent link")

`[](#%5F%5Fcodelineno-70-1)addListener(eventName: 'phoneVerificationFailed', listenerFunc: PhoneVerificationFailedListener) => Promise<PluginListenerHandle>
`

Listen for a failed phone verification.

| Param            | Type                                                                |
| ---------------- | ------------------------------------------------------------------- |
| **eventName**    | 'phoneVerificationFailed'                                           |
| **listenerFunc** | [PhoneVerificationFailedListener](#phoneverificationfailedlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 1.3.0

---

### addListener('phoneCodeSent', ...)[¶](#addlistenerphonecodesent "Permanent link")

`[](#%5F%5Fcodelineno-71-1)addListener(eventName: 'phoneCodeSent', listenerFunc: PhoneCodeSentListener) => Promise<PluginListenerHandle>
`

Listen for a phone verification code.

| Param            | Type                                            |
| ---------------- | ----------------------------------------------- |
| **eventName**    | 'phoneCodeSent'                                 |
| **listenerFunc** | [PhoneCodeSentListener](#phonecodesentlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 1.3.0

---

### removeAllListeners()[¶](#removealllisteners "Permanent link")

`[](#%5F%5Fcodelineno-72-1)removeAllListeners() => Promise<void>
`

Remove all listeners for this plugin.

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### ApplyActionCodeOptions[¶](#applyactioncodeoptions "Permanent link")

| Prop        | Type   | Description                           | Since |
| ----------- | ------ | ------------------------------------- | ----- |
| **oobCode** | string | A verification code sent to the user. | 0.2.2 |

#### ConfirmPasswordResetOptions[¶](#confirmpasswordresetoptions "Permanent link")

| Prop            | Type   | Description                           | Since |
| --------------- | ------ | ------------------------------------- | ----- |
| **oobCode**     | string | A verification code sent to the user. | 0.2.2 |
| **newPassword** | string | The new password.                     | 0.2.2 |

#### SignInResult[¶](#signinresult "Permanent link")

| Prop                   | Type                                              | Description                                                     | Since |
| ---------------------- | ------------------------------------------------- | --------------------------------------------------------------- | ----- |
| **user**               | [User](#user) \| null                             | The currently signed-in user, or null if there isn't any.       | 0.1.0 |
| **credential**         | [AuthCredential](#authcredential) \| null         | Credentials returned by an auth provider.                       | 0.1.0 |
| **additionalUserInfo** | [AdditionalUserInfo](#additionaluserinfo) \| null | Additional user information from a federated identity provider. | 0.5.1 |

#### User[¶](#user "Permanent link")

| Prop              | Type                          | Description                                                          | Since |
| ----------------- | ----------------------------- | -------------------------------------------------------------------- | ----- |
| **displayName**   | string \| null                | 0.1.0                                                                |       |
| **email**         | string \| null                | 0.1.0                                                                |       |
| **emailVerified** | boolean                       | 0.1.0                                                                |       |
| **isAnonymous**   | boolean                       | 0.1.0                                                                |       |
| **metadata**      | [UserMetadata](#usermetadata) | The user's metadata.                                                 | 5.2.0 |
| **phoneNumber**   | string \| null                | 0.1.0                                                                |       |
| **photoUrl**      | string \| null                | 0.1.0                                                                |       |
| **providerData**  | UserInfo\[\]                  | Additional per provider such as displayName and profile information. | 5.2.0 |
| **providerId**    | string                        | 0.1.0                                                                |       |
| **tenantId**      | string \| null                | 0.1.0                                                                |       |
| **uid**           | string                        | 0.1.0                                                                |       |

#### UserMetadata[¶](#usermetadata "Permanent link")

| Prop               | Type   | Description                                                   | Since |
| ------------------ | ------ | ------------------------------------------------------------- | ----- |
| **creationTime**   | number | Time the user was created in milliseconds since the epoch.    | 5.2.0 |
| **lastSignInTime** | number | Time the user last signed in in milliseconds since the epoch. | 5.2.0 |

#### UserInfo[¶](#userinfo "Permanent link")

| Prop            | Type           | Description                                                                               | Since |
| --------------- | -------------- | ----------------------------------------------------------------------------------------- | ----- |
| **displayName** | string \| null | The display name of the user.                                                             | 5.2.0 |
| **email**       | string \| null | The email of the user.                                                                    | 5.2.0 |
| **phoneNumber** | string \| null | The phone number normalized based on the E.164 standard (e.g. +16505550101) for the user. | 5.2.0 |
| **photoUrl**    | string \| null | The profile photo URL of the user.                                                        | 5.2.0 |
| **providerId**  | string         | The provider used to authenticate the user.                                               | 5.2.0 |
| **uid**         | string         | The user's unique ID.                                                                     | 5.2.0 |

#### AuthCredential[¶](#authcredential "Permanent link")

| Prop                  | Type   | Description                                                                                                                              | Since |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **accessToken**       | string | The OAuth access token associated with the credential if it belongs to an OAuth provider.                                                | 0.1.0 |
| **authorizationCode** | string | A token that the app uses to interact with the server. Only available for Apple Sign-in on iOS.                                          | 1.2.0 |
| **idToken**           | string | The OAuth ID token associated with the credential if it belongs to an OIDC provider.                                                     | 0.1.0 |
| **nonce**             | string | The random string used to make sure that the ID token you get was granted specifically in response to your app's authentication request. | 0.1.0 |
| **providerId**        | string | The authentication provider ID for the credential.                                                                                       | 0.1.0 |
| **secret**            | string | The OAuth access token secret associated with the credential if it belongs to an OAuth 1.0 provider.                                     | 0.1.0 |
| **serverAuthCode**    | string | The server auth code. Only available for Google Sign-in and Play Games Sign-In on Android and iOS.                                       | 5.2.0 |

#### AdditionalUserInfo[¶](#additionaluserinfo "Permanent link")

| Prop           | Type                          | Description                                                 | Since |
| -------------- | ----------------------------- | ----------------------------------------------------------- | ----- |
| **isNewUser**  | boolean                       | Whether the user is new (sign-up) or existing (sign-in).    | 0.5.1 |
| **profile**    | { \[key: string\]: unknown; } | Map containing IDP-specific user data.                      | 0.5.1 |
| **providerId** | string                        | Identifier for the provider used to authenticate this user. | 0.5.1 |
| **username**   | string                        | The username if the provider is GitHub or Twitter.          | 0.5.1 |

#### ConfirmVerificationCodeOptions[¶](#confirmverificationcodeoptions "Permanent link")

| Prop                 | Type   | Description                                                                                                                                    | Since |
| -------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **verificationId**   | string | The verification ID received from the phoneCodeSent listener. The verificationCode option must also be provided.                               | 5.0.0 |
| **verificationCode** | string | The verification code either received from the phoneCodeSent listener or entered by the user. The verificationId option must also be provided. | 5.0.0 |

#### CreateUserWithEmailAndPasswordOptions[¶](#createuserwithemailandpasswordoptions "Permanent link")

| Prop         | Type   | Since |
| ------------ | ------ | ----- |
| **email**    | string | 0.2.2 |
| **password** | string | 0.2.2 |

#### FetchSignInMethodsForEmailResult[¶](#fetchsigninmethodsforemailresult "Permanent link")

| Prop              | Type       | Description                                                                                                                                                                                                                                                                                     | Since |
| ----------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **signInMethods** | string\[\] | The sign-in methods for the specified email address. This list is empty when [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, irrespective of the number of authentication methods available for the given email. | 6.0.0 |

#### FetchSignInMethodsForEmailOptions[¶](#fetchsigninmethodsforemailoptions "Permanent link")

| Prop      | Type   | Description               | Since |
| --------- | ------ | ------------------------- | ----- |
| **email** | string | The user's email address. | 6.0.0 |

#### GetCurrentUserResult[¶](#getcurrentuserresult "Permanent link")

| Prop     | Type                  | Description                                               | Since |
| -------- | --------------------- | --------------------------------------------------------- | ----- |
| **user** | [User](#user) \| null | The currently signed-in user, or null if there isn't any. | 0.1.0 |

#### GetIdTokenResult[¶](#getidtokenresult%5F1 "Permanent link")

| Prop      | Type   | Description                            | Since |
| --------- | ------ | -------------------------------------- | ----- |
| **token** | string | The Firebase Auth ID token JWT string. | 0.1.0 |

#### GetIdTokenOptions[¶](#getidtokenoptions "Permanent link")

| Prop             | Type    | Description                                   | Since |
| ---------------- | ------- | --------------------------------------------- | ----- |
| **forceRefresh** | boolean | Force refresh regardless of token expiration. | 0.1.0 |

#### GetIdTokenResultResult[¶](#getidtokenresultresult "Permanent link")

| Prop                   | Type                    | Description                                                                                                                                            | Since |
| ---------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- |
| **authTime**           | number                  | The authentication time in milliseconds since the epoch. This is the time the user authenticated (signed in) and not the time the token was refreshed. | 7.4.0 |
| **expirationTime**     | number                  | The ID token expiration time in milliseconds since the epoch.                                                                                          | 7.4.0 |
| **issuedAtTime**       | number                  | The ID token issuance time in milliseconds since the epoch.                                                                                            | 7.4.0 |
| **signInProvider**     | string \| null          | The sign-in provider through which the ID token was obtained.                                                                                          | 7.4.0 |
| **signInSecondFactor** | string \| null          | The type of second factor associated with this session, provided the user was multi-factor authenticated (eg. phone, etc).                             | 7.4.0 |
| **claims**             | Record<string, unknown> | The entire payload claims of the ID token including the standard reserved claims as well as the custom claims.                                         | 7.4.0 |

#### GetIdTokenResultOptions[¶](#getidtokenresultoptions "Permanent link")

| Prop             | Type    | Description                                   | Since |
| ---------------- | ------- | --------------------------------------------- | ----- |
| **forceRefresh** | boolean | Force refresh regardless of token expiration. | 7.4.0 |

#### GetTenantIdResult[¶](#gettenantidresult "Permanent link")

| Prop         | Type           | Description                                   | Since |
| ------------ | -------------- | --------------------------------------------- | ----- |
| **tenantId** | string \| null | The tenant id. null if it has never been set. | 1.1.0 |

#### IsSignInWithEmailLinkResult[¶](#issigninwithemaillinkresult "Permanent link")

| Prop                      | Type    | Description                                                                                 |
| ------------------------- | ------- | ------------------------------------------------------------------------------------------- |
| **isSignInWithEmailLink** | boolean | Whether an incoming link is a signup with email link suitable for signInWithEmailLink(...). |

#### IsSignInWithEmailLinkOptions[¶](#issigninwithemaillinkoptions "Permanent link")

| Prop          | Type   | Description                                | Since |
| ------------- | ------ | ------------------------------------------ | ----- |
| **emailLink** | string | The link sent to the user's email address. | 1.1.0 |

#### SignInWithOAuthOptions[¶](#signinwithoauthoptions "Permanent link")

| Prop                 | Type                      | Description                                                                                                                                                                                                                                                                                             | Default | Since |
| -------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **customParameters** | SignInCustomParameter\[\] | Configures custom parameters to be passed to the identity provider during the OAuth sign-in flow. Supports Apple, Facebook, GitHub, Google, Microsoft, Twitter and Yahoo on Web. Supports Apple, GitHub, Microsoft, Twitter and Yahoo on Android. Supports GitHub, Microsoft, Twitter and Yahoo on iOS. | 1.1.0   |       |
| **mode**             | 'popup' \| 'redirect'     | Whether to use the popup-based OAuth authentication flow or the full-page redirect flow. If you choose redirect, you will get the result of the call via the authStateChange listener after the redirect. Only available for Web.                                                                       | 'popup' | 1.3.0 |
| **scopes**           | string\[\]                | Scopes to request from provider. Supports Apple, Facebook, GitHub, Google, Microsoft, Twitter and Yahoo on Web. Supports Apple, GitHub, Google, Microsoft, Twitter, Yahoo and Play Games on Android. Supports Facebook, GitHub, Google, Microsoft, Twitter and Yahoo on iOS.                            | 1.1.0   |       |

#### SignInCustomParameter[¶](#signincustomparameter "Permanent link")

| Prop      | Type   | Description                                                      | Since |
| --------- | ------ | ---------------------------------------------------------------- | ----- |
| **key**   | string | The custom parameter key (e.g. login\_hint).                     | 0.1.0 |
| **value** | string | The custom parameter value (e.g. user@firstadd.onmicrosoft.com). | 0.1.0 |

#### LinkWithEmailAndPasswordOptions[¶](#linkwithemailandpasswordoptions "Permanent link")

| Prop         | Type   | Description               | Since |
| ------------ | ------ | ------------------------- | ----- |
| **email**    | string | The user's email address. | 1.1.0 |
| **password** | string | The user's password.      | 1.1.0 |

#### LinkWithEmailLinkOptions[¶](#linkwithemaillinkoptions "Permanent link")

| Prop          | Type   | Description                                | Since |
| ------------- | ------ | ------------------------------------------ | ----- |
| **email**     | string | The user's email address.                  | 1.1.0 |
| **emailLink** | string | The link sent to the user's email address. | 1.1.0 |

#### SignInWithOpenIdConnectOptions[¶](#signinwithopenidconnectoptions "Permanent link")

| Prop           | Type   | Description                     | Since |
| -------------- | ------ | ------------------------------- | ----- |
| **providerId** | string | The OpenID Connect provider ID. | 6.1.0 |

#### SignInWithPhoneNumberOptions[¶](#signinwithphonenumberoptions "Permanent link")

| Prop                  | Type    | Description                                                                                                                                                 | Default | Since |
| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **phoneNumber**       | string  | The phone number to be verified in E.164 format.                                                                                                            | 0.1.0   |       |
| **recaptchaVerifier** | unknown | The reCAPTCHA verifier. Must be an instance of firebase.auth.RecaptchaVerifier. Only available for Web.                                                     | 5.2.0   |       |
| **resendCode**        | boolean | Resend the verification code to the specified phone number. signInWithPhoneNumber must be called once before using this option. Only available for Android. | false   | 1.3.0 |
| **timeout**           | number  | The maximum amount of time in seconds to wait for the SMS auto-retrieval. Use 0 to disable SMS-auto-retrieval. Only available for Android.                  | 60      | 5.4.0 |

#### RevokeAccessTokenOptions[¶](#revokeaccesstokenoptions "Permanent link")

| Prop      | Type   | Description                 | Since |
| --------- | ------ | --------------------------- | ----- |
| **token** | string | The access token to revoke. | 6.1.0 |

#### SendEmailVerificationOptions[¶](#sendemailverificationoptions "Permanent link")

| Prop                   | Type                                      | Description                                                                                               | Since |
| ---------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----- |
| **actionCodeSettings** | [ActionCodeSettings](#actioncodesettings) | Structure that contains the required continue/state URL with optional Android and iOS bundle identifiers. | 6.1.0 |

#### ActionCodeSettings[¶](#actioncodesettings "Permanent link")

An interface that defines the required continue/state URL with optional Android and iOS bundle identifiers.

| Prop                | Type                                                                    | Description                                                                                                                                                                                                                                                                   | Since |
| ------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **android**         | { installApp?: boolean; minimumVersion?: string; packageName: string; } | Sets the Android package name.                                                                                                                                                                                                                                                |       |
| **handleCodeInApp** | boolean                                                                 | When set to true, the action code link will be be sent as a Universal Link or Android App Link and will be opened by the app if installed.                                                                                                                                    |       |
| **iOS**             | { bundleId: string; }                                                   | Sets the iOS bundle ID.                                                                                                                                                                                                                                                       |       |
| **url**             | string                                                                  | Sets the link continue/state URL.                                                                                                                                                                                                                                             |       |
| **linkDomain**      | string                                                                  | When multiple custom Firebase Hosting link domains are defined for a project, specify which one to use when the link is to be opened via a specified mobile app (for example, example.page.link). The domain must be configured in Firebase Hosting and owned by the project. | 7.1.0 |

#### SendPasswordResetEmailOptions[¶](#sendpasswordresetemailoptions "Permanent link")

| Prop                   | Type                                      | Description                                                                                               | Since |
| ---------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----- |
| **email**              | string                                    | 0.2.2                                                                                                     |       |
| **actionCodeSettings** | [ActionCodeSettings](#actioncodesettings) | Structure that contains the required continue/state URL with optional Android and iOS bundle identifiers. | 6.1.0 |

#### SendSignInLinkToEmailOptions[¶](#sendsigninlinktoemailoptions "Permanent link")

| Prop                   | Type                                      | Description                                                                                               | Since |
| ---------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----- |
| **email**              | string                                    | The user's email address.                                                                                 | 1.1.0 |
| **actionCodeSettings** | [ActionCodeSettings](#actioncodesettings) | Structure that contains the required continue/state URL with optional Android and iOS bundle identifiers. | 1.1.0 |

#### SetLanguageCodeOptions[¶](#setlanguagecodeoptions "Permanent link")

| Prop             | Type   | Description           | Since |
| ---------------- | ------ | --------------------- | ----- |
| **languageCode** | string | BCP 47 language code. | 0.1.0 |

#### SetPersistenceOptions[¶](#setpersistenceoptions "Permanent link")

| Prop            | Type                        | Description            | Since |
| --------------- | --------------------------- | ---------------------- | ----- |
| **persistence** | [Persistence](#persistence) | The persistence types. | 5.2.0 |

#### SetTenantIdOptions[¶](#settenantidoptions "Permanent link")

| Prop         | Type   | Description    | Since |
| ------------ | ------ | -------------- | ----- |
| **tenantId** | string | The tenant id. | 1.1.0 |

#### SignInWithCustomTokenOptions[¶](#signinwithcustomtokenoptions "Permanent link")

| Prop      | Type   | Description                       | Since |
| --------- | ------ | --------------------------------- | ----- |
| **token** | string | The custom token to sign in with. | 0.1.0 |

#### SignInWithEmailAndPasswordOptions[¶](#signinwithemailandpasswordoptions "Permanent link")

| Prop         | Type   | Description               | Since |
| ------------ | ------ | ------------------------- | ----- |
| **email**    | string | The user's email address. | 0.2.2 |
| **password** | string | The user's password.      | 0.2.2 |

#### SignInWithEmailLinkOptions[¶](#signinwithemaillinkoptions "Permanent link")

| Prop          | Type   | Description                                | Since |
| ------------- | ------ | ------------------------------------------ | ----- |
| **email**     | string | The user's email address.                  | 1.1.0 |
| **emailLink** | string | The link sent to the user's email address. | 1.1.0 |

#### SignInWithFacebookOptions[¶](#signinwithfacebookoptions "Permanent link")

| Prop                | Type    | Description                                                                                                                                                                                                                                                                                                                                                     | Default | Since |
| ------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **useLimitedLogin** | boolean | Whether to use the Facebook Limited Login mode. If set to true, no access token will be returned but the user does not have to grant App Tracking Transparency permission. If set to false, the user has to grant App Tracking Transparency permission. You can request the permission with requestAppTrackingTransparencyPermission(). Only available for iOS. | false   | 7.2.0 |

#### SignInOptions[¶](#signinoptions "Permanent link")

| Prop               | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Since |
| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **skipNativeAuth** | boolean | Whether the plugin should skip the native authentication or not. Only needed if you want to use the Firebase JavaScript SDK. This value overwrites the configrations value of the skipNativeAuth option. If no value is set, the configuration value is used. **Note that the plugin may behave differently across the platforms.** skipNativeAuth cannot be used in combination with signInWithCustomToken, createUserWithEmailAndPassword or signInWithEmailAndPassword. Only available for Android and iOS. | 1.1.0 |

#### SignInWithGoogleOptions[¶](#signinwithgoogleoptions "Permanent link")

| Prop                     | Type    | Description                                                                       | Default | Since |
| ------------------------ | ------- | --------------------------------------------------------------------------------- | ------- | ----- |
| **useCredentialManager** | boolean | Whether to use the Credential Manager API to sign in. Only available for Android. | true    | 7.2.0 |

#### UnlinkResult[¶](#unlinkresult "Permanent link")

| Prop     | Type                  | Description                                               | Since |
| -------- | --------------------- | --------------------------------------------------------- | ----- |
| **user** | [User](#user) \| null | The currently signed-in user, or null if there isn't any. | 1.1.0 |

#### UnlinkOptions[¶](#unlinkoptions "Permanent link")

| Prop           | Type                      | Description             | Since |
| -------------- | ------------------------- | ----------------------- | ----- |
| **providerId** | [ProviderId](#providerid) | The provider to unlink. | 1.1.0 |

#### UpdateEmailOptions[¶](#updateemailoptions "Permanent link")

| Prop         | Type   | Description            | Since |
| ------------ | ------ | ---------------------- | ----- |
| **newEmail** | string | The new email address. | 0.2.2 |

#### UpdatePasswordOptions[¶](#updatepasswordoptions "Permanent link")

| Prop            | Type   | Description       | Since |
| --------------- | ------ | ----------------- | ----- |
| **newPassword** | string | The new password. | 0.2.2 |

#### UpdateProfileOptions[¶](#updateprofileoptions "Permanent link")

| Prop            | Type           | Description              | Since |
| --------------- | -------------- | ------------------------ | ----- |
| **displayName** | string \| null | The user's display name. | 1.3.0 |
| **photoUrl**    | string \| null | The user's photo URL.    | 1.3.0 |

#### UseEmulatorOptions[¶](#useemulatoroptions "Permanent link")

| Prop       | Type   | Description                                   | Default | Since |
| ---------- | ------ | --------------------------------------------- | ------- | ----- |
| **host**   | string | The emulator host without any port or scheme. | 0.2.0   |       |
| **port**   | number | The emulator port.                            | 9099    | 0.2.0 |
| **scheme** | string | The emulator scheme. Only available for Web.  | "http"  | 5.2.0 |

#### VerifyBeforeUpdateEmailOptions[¶](#verifybeforeupdateemailoptions "Permanent link")

| Prop                   | Type                                      | Description                                         | Since |
| ---------------------- | ----------------------------------------- | --------------------------------------------------- | ----- |
| **newEmail**           | string                                    | The new email address to be verified before update. | 6.3.0 |
| **actionCodeSettings** | [ActionCodeSettings](#actioncodesettings) | The action code settings                            | 6.3.0 |

#### CheckAppTrackingTransparencyPermissionResult[¶](#checkapptrackingtransparencypermissionresult "Permanent link")

| Prop       | Type                                                                              | Description                                         | Since |
| ---------- | --------------------------------------------------------------------------------- | --------------------------------------------------- | ----- |
| **status** | [AppTrackingTransparencyPermissionState](#apptrackingtransparencypermissionstate) | The permission status of App Tracking Transparency. | 7.2.0 |

#### PluginListenerHandle[¶](#pluginlistenerhandle "Permanent link")

| Prop       | Type                |
| ---------- | ------------------- |
| **remove** | () => Promise<void> |

#### AuthStateChange[¶](#authstatechange "Permanent link")

| Prop     | Type                  | Description                                               | Since |
| -------- | --------------------- | --------------------------------------------------------- | ----- |
| **user** | [User](#user) \| null | The currently signed-in user, or null if there isn't any. | 0.1.0 |

#### PhoneVerificationCompletedEvent[¶](#phoneverificationcompletedevent "Permanent link")

| Prop                 | Type   | Description                                                                                                       | Since |
| -------------------- | ------ | ----------------------------------------------------------------------------------------------------------------- | ----- |
| **verificationCode** | string | The verification code sent to the user's phone number. If instant verification is used, this property is not set. | 5.0.0 |

#### PhoneVerificationFailedEvent[¶](#phoneverificationfailedevent "Permanent link")

| Prop        | Type   | Description        | Since |
| ----------- | ------ | ------------------ | ----- |
| **message** | string | The error message. | 1.3.0 |

#### PhoneCodeSentEvent[¶](#phonecodesentevent "Permanent link")

| Prop               | Type   | Description                                                             | Since |
| ------------------ | ------ | ----------------------------------------------------------------------- | ----- |
| **verificationId** | string | The verification ID, which is needed to identify the verification code. | 1.3.0 |

### Type Aliases[¶](#type-aliases "Permanent link")

#### LinkWithOAuthOptions[¶](#linkwithoauthoptions "Permanent link")

`[SignInWithOAuthOptions](#signinwithoauthoptions)`

#### LinkResult[¶](#linkresult "Permanent link")

`[SignInResult](#signinresult)`

#### LinkWithOpenIdConnectOptions[¶](#linkwithopenidconnectoptions "Permanent link")

`[SignInWithOpenIdConnectOptions](#signinwithopenidconnectoptions)`

#### LinkWithPhoneNumberOptions[¶](#linkwithphonenumberoptions "Permanent link")

`[SignInWithPhoneNumberOptions](#signinwithphonenumberoptions)`

#### AppTrackingTransparencyPermissionState[¶](#apptrackingtransparencypermissionstate "Permanent link")

`[PermissionState](#permissionstate) | 'restricted'`

#### PermissionState[¶](#permissionstate "Permanent link")

`'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'`

#### RequestAppTrackingTransparencyPermissionResult[¶](#requestapptrackingtransparencypermissionresult "Permanent link")

`[CheckAppTrackingTransparencyPermissionResult](#checkapptrackingtransparencypermissionresult)`

#### AuthStateChangeListener[¶](#authstatechangelistener "Permanent link")

Callback to receive the user's sign-in state change notifications.

`(change: [AuthStateChange](#authstatechange)): void`

#### IdTokenChangeListener[¶](#idtokenchangelistener "Permanent link")

Callback to receive the ID token change notifications.

`(change: [GetIdTokenResult](#getidtokenresult)): void`

#### PhoneVerificationCompletedListener[¶](#phoneverificationcompletedlistener "Permanent link")

Callback to receive the verification code sent to the user's phone number.

`(event: [PhoneVerificationCompletedEvent](#phoneverificationcompletedevent)): void`

#### PhoneVerificationFailedListener[¶](#phoneverificationfailedlistener "Permanent link")

Callback to receive notifications of failed phone verification.

`(event: [PhoneVerificationFailedEvent](#phoneverificationfailedevent)): void`

#### PhoneCodeSentListener[¶](#phonecodesentlistener "Permanent link")

Callback to receive the verification ID.

`(event: [PhoneCodeSentEvent](#phonecodesentevent)): void`

### Enums[¶](#enums "Permanent link")

#### Persistence[¶](#persistence "Permanent link")

| Members            | Value                | Description                                  | Since |
| ------------------ | -------------------- | -------------------------------------------- | ----- |
| **IndexedDbLocal** | 'INDEXED\_DB\_LOCAL' | Long term persistence using IndexedDB.       | 5.2.0 |
| **InMemory**       | 'IN\_MEMORY'         | No persistence.                              | 5.2.0 |
| **BrowserLocal**   | 'BROWSER\_LOCAL'     | Long term persistence using local storage.   | 5.2.0 |
| **BrowserSession** | 'BROWSER\_SESSION'   | Temporary persistence using session storage. | 5.2.0 |

#### ProviderId[¶](#providerid "Permanent link")

| Members          | Value                  |
| ---------------- | ---------------------- |
| **APPLE**        | 'apple.com'            |
| **FACEBOOK**     | 'facebook.com'         |
| **GAME\_CENTER** | 'gc.apple.com'         |
| **GITHUB**       | 'github.com'           |
| **GOOGLE**       | 'google.com'           |
| **MICROSOFT**    | 'microsoft.com'        |
| **PLAY\_GAMES**  | 'playgames.google.com' |
| **TWITTER**      | 'twitter.com'          |
| **YAHOO**        | 'yahoo.com'            |
| **PASSWORD**     | 'password'             |
| **PHONE**        | 'phone'                |

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/LICENSE).

## Credits[¶](#credits "Permanent link")

This plugin is based on the [Capacitor Firebase Authentication](https://github.com/robingenz/capacitor-firebase-authentication) plugin. Thanks to everyone who contributed to the project!

---

1. This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries. [↩](#fnref:1 "Jump back to footnote 1 in the text")

May 17, 2026 

 Back to top 