> For the complete documentation index, see [llms.txt](https://docs.thunkable.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thunkable.com/snap-to-place/sign-in-1.md).

# Email Sign In by Firebase

{% hint style="info" %}
To use Sign In, you will need to first create your own Firebase account and project
{% endhint %}

{% embed url="<https://youtu.be/M9XVdLU25fQ>" %}

## Getting Started

### Create your free [Firebase](https://firebase.google.com/) account and create a new project

![](/files/-LApyw3bvIOR5-JAB_w5)

### Enable Email / Password Sign in

In the Firebase console, navigate to Authentication and the tab "Sign-In Method". Enable Email/Password as shown below.

![](/files/-LAn69LqKwm8IN8GZyqJ)

### Connect your Firebase Account with Thunkable

There are two properties that you need to retrieve from Firebase to connect it with Thunkable which are both retrievable from the Firebase console: `API key` and `database URL`

![](/files/-LApyIjcnOtwD72IBTH2)

`API key` and `database URL`

![](/files/-LApyLIkRV82bHzOpleV)

![](/files/-LApyNNWBRAZDpCzIvN4)

### (Optional) Modify the email template you send to verify your users' emails

![](/files/-LAn69OX26OWFvWU9YAd)

## Using the Sign In Component in your App

Click on the Sign In drawer of blocks to access the Sign In blocks.

![](/files/-MJWgaewcQAcQvcp6nNZ)

## Sign up

The first step for users is to Sign Up with their email address and a password. They will be sent an email to verify the address that they provided.&#x20;

![](/files/-MYdkyDRiN3_GIjVSX8j)

| Event                           | Description                                                                                                                                                       |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sign up ( `email`, `password)`) | Signs up a user for a new account. Returns an `error` if sign up is not successful. A common `error` is "The email address is already in use by another account." |

Here is an example of using this block:

![](/files/-MYdlJ6-z3hsMybnvHJ2)

## Sign in

This block will sign a user in and return their user ID.

![](/files/-MYdlhzeo9tNMtDmrQ1o)

| Name            | Data Type  | Data                                                              |
| --------------- | ---------- | ----------------------------------------------------------------- |
| error           | Text       | If error, returns error; else, returns `null`                     |
| userId          | Text       | Returns unique ID for each account                                |
| isEmailVerified | True/False | If email has been verified, returns `true`; else, returns `false` |

When the user's email and password have been stored locally, the following blocks can be used to sign the user in with these details automatically.

![](/files/-MYdmcL0EM8Nfwy6MVRv)

## Sign Out

Signs the user out.

![](/files/-MYdmkKjGqJlV526UNgN)

## Reset Password

Send an email to the specified email address to reset their password

![](/files/-MYdmzLBjXgAzeuYOC_C)

## Manage User Access

On the Firebase console, navigate to the Users tab under Authentication and you'll find a dashboard where you can reset a user's password, disable and delete their accounts.

![](/files/-LAn69UwOJpXTThRSq3r)
