Firebase Email Auth Extension

A non-visible component that lets you integrate Firebase Authentication (email/password) into your App Inventor, Kodular, or other AI2-based apps without writing Java code.

:sparkles: Features

  • :key: Sign Up / Sign In with Email & Password
  • :locked: Change Password (requires current ID token)
  • :envelope: Change Email (requires current ID token)
  • :counterclockwise_arrows_button: Refresh ID Token
  • :open_mailbox_with_raised_flag: Send Email Verification
  • :white_check_mark: Check Email Verification Status
  • :cross_mark: Delete Account
  • :repeat_button: Reset Password (send password reset email)
  • :inbox_tray: Exposes both Local ID and ID Token to your blocks

All operations use Firebase’s REST Web API; no Google Play Services dependency.

Designer Properties

Property Name Type Description
ApiKey Text Your Firebase project Web API Key (from Firebase Console → Project Settings).
SignedInLocalId Readonly The user’s local UID returned by Firebase after sign in.
SignedInIdToken Readonly The user’s current ID Token returned by Firebase after sign in.

:puzzle_piece: Blocks

Authentication

Block Inputs Output / Event
SignUp(email, password) Email, Password Fires SignUpSuccess(email, idToken, localId) or SignUpFailed(errorJson)
SignIn(email, password) Email, Password Fires SignInSuccess(email, idToken, localId) or SignInFailed(errorJson)
SendVerificationEmail(idToken) idToken (from sign in) Fires VerificationSent(email, idToken) or VerificationFailed(errorJson)
CheckEmailVerificationStatus(idToken) idToken Fires EmailVerifiedStatus(verified)

Account Management

Block Inputs Output / Event
ChangeEmail(idToken, newEmail) idToken, newEmail Fires ChangeEmailSuccess(oldEmail, newEmail, response) or ChangeEmailFailed(errorJson, oldEmail, newEmail)
ChangePassword(idToken, newPassword) idToken, newPassword Fires ChangePasswordSuccess(oldPassword, newPassword, response) or ChangePasswordFailed(errorJson, oldPassword, newPassword)
RefreshToken(refreshToken) Refresh token Fires RefreshTokenSuccess(responseJson) or RefreshTokenFailed(errorJson)
DeleteAccount(idToken) idToken Fires DeleteAccountSuccess(email) or DeleteAccountFailed(errorJson)
SendPasswordResetEmail(email) Email Fires ResetPasswordSuccess(email) or ResetPasswordFailed(errorJson)

:memo: Events

  • SignUpSuccess(email, idToken, localId)
  • SignUpFailed(errorJson)
  • SignInSuccess(email, idToken, localId)
  • SignInFailed(errorJson)
  • VerificationSent(email, idToken)
  • VerificationFailed(errorJson)
  • ChangeEmailSuccess(oldEmail, newEmail, response)
  • ChangeEmailFailed(errorJson, oldEmail, newEmail)
  • ChangePasswordSuccess(oldPassword, newPassword, response)
  • ChangePasswordFailed(errorJson, oldPassword, newPassword)
  • RefreshTokenSuccess(responseJson)
  • RefreshTokenFailed(errorJson)
  • EmailVerifiedStatus(verified)
  • DeleteAccountSuccess(email)
  • DeleteAccountFailed(errorJson)
  • ResetPasswordSuccess(email)
  • ResetPasswordFailed(errorJson)

:warning: All errorJson strings are the raw JSON returned by Firebase (no parsing) so you can inspect error.message in your blocks.

:technologist: Usage Example

  1. Drag the component into your project.
  2. Set ApiKey to your Firebase Web API Key.
  3. On a Sign Up button click:
when Button1.Click
    call EmailAuth1.SignUp(TextBoxEmail.Text, TextBoxPassword.Text)
  1. Handle success:
when EmailAuth1.SignUpSuccess do
    set Label1.Text to join "Signed up: " email
    set global IdToken to idToken
  1. Later use global IdToken to change password, change email, or delete the account.

Blocks Image

Download AIX :
com.tricky.emailauth.aix (14.1 KB)

3 Likes

Upload blocks!

@JEWEL Done

Awesome!!! But what’s the different with the kodular Firebase Authentication? Also if possible add phone number sign in option, check out here

1 Like

This extension does not work with phone authentication. Its all about email Auth with every features with minimum effort. its just require API key from firebase to work, google-service.json is not required

That was a request

1 Like

I am trying Thank you for your suggestion.

1 Like

Hello how do I check if an email is verified or not?

Is this setup not working?

it’s not is it supposed to?

Of course, what’s about verified it manually, like creating OTP system, send it to that email, and if user enters correct information, mean that email is a working, I have ever used this functionality

You have to send verification email first

Firebase don’t allow costom OTP verification

The system I was talking about here it’s not from firebase, you can create that with web component and Google Script apps

Easy, there’s a lot of tutorials about this in the community

I already have it doing that. It sends the verification to the email and works but how do I verify it using this extension?

That will not work because if you close the app go to the email, when turning back, u suppose to verify blocks after user verify it in external web, may add verification webview inside you app and catching it’s response, but it needs setup

Else verify it manually, we do verify options, reason it to confirm that the user enter a working email address to avoid abuse, or drama logins, so just set your OTP, but before send it store it inside your app, then send it

Eg 175867, call TinyDB store value 175867. The compare with user inputs, if matches then that email address is working

I am using an authentication extension, but when I build it, this error appears.There is no problem in testing with companion. I tried, but it didn’t work. Please help me.
The extension I use: Firebase Email Auth Extension

@Taifun

This is called extension and not plugin. Please use the correct term to avoid confusion

You forgot to provide the error and a screenshot of your relevant blocks

Taifun

First you should have read the error dialog, the error was mentioned itself, if look down there
Ekran görüntüsü 2025-10-18 154058

You added OneSignal component without adding its values, enter your App Id and compile will 100%