Android Getting Started with Firebase – Login and Registration Authentication

With the latest news from Google I/O comes the new and upgraded Firebase. To demonstrate how simplified and easy to use firebase is, we will build a simple login / register (Firebase Authentication) demo using the Firebase Email & Password authentication.

Features of Firebase

Firebase comes with bunch features essential for every android app starting from authentication to hosting the app.

Below are the advantages using Firebase in general:> Super easy and quick to implement.> No server side configuration needed. No PHP Scripts and No Database Designs.> Realtime update without using GCM.> Autoscaling built-in> Can start for free (only need to start paying once we hit 50 connections)> Robust APIs for Javascript (including several frameworks like Angular), iOS, and Android> Built-in support for authentication services like Facebook, Google, and Twitter> Declarative Security Rules model allows us to enforce read/write privileges and data validation throughout the tree

Some of the disadvantages of Firebase can be sum up in the following:> Need to build indexes manually> May need to build “event log” manually as well (in separate sub-tree?)> Implementation of REST API could be difficult on embedded platforms> Data validation rules do not support complex objects directly (you’d need to validate individual child nodes separately)

1. Enabling Firebase Auth

1. First thing you need to do is go to https://firebase.google.com/ and make an account to gain access to their console. After you gain access to the console you can start by creating your first project.

2. Give the package name of your project (mine is info.androidhive.firebase) in which you are going to integrate the Firebase. Here the google-services.json file will be downloaded when you press add app button.

3. Next go to your project dashboard. Find the Auth and click get started. Go to set up sign in method and choose Email & Password and enable it.

Now we are ready to start with our Android project. We are going to create a simple app which contains firebase authentication and profile management. Overall we are going to see how to add Login, Registration, Forgot Password, Change Email, Change Password & finally Sign Out option.

2. Creating Android Project

1. Create a new project in Android Studio from File ⇒ New Project. When it prompts you to select the default activity, select Blank Activity and proceed.

While filling the project details, use the same package name which you gave in firebase console. In my case I am using same info.androidhive.firebase.

2. Open AndroidManifest.xml and add the INTERNET permission as we need to make network calls.

<uses-permission android:name="android.permission.INTERNET" />

3. Paste the google-services.json file to your project’s app folder. This step is very important as your project won’t build without this file.

4. Now open the build.gradle located in project’s home directory and add firebase dependency.

Hi there! I am Founder at androidhive and programming enthusiast. My skills includes Android, iOS, PHP, Ruby on Rails and lot more. If you have any idea that you would want me to develop? Let’s talk: ravi@androidhive.info

Firebase’s paid infrastructure products are the Realtime Database, Firebase Storage, Hosting, and Test Lab. We offer a free tier for all of these products except Test Lab.

Firebase also has many free products: Analytics, Notifications, Crash Reporting, Authentication, Remote Config, Dynamic Links, Firebase Invites, and App Indexing. You can use an unlimited amount of these in all plans, including our free Spark Plan.

Danh Nguyễn

Hi, Ravi Tamada
I want to get list user register account on firebase. Can I get them? I don’t see any document about it

Hello Sir I have problem in the Login Activity its showing you cannot find the symbol setContentView(R.layout.activity_login);

its showing R in red color

Aarav Choudhary

D:AndroidFirebaseAppappsrcmainreslayoutactivity_main.xml
Error:(16) No resource identifier found for attribute ‘layout_scrollFlags’ in package ‘info.pradeep.firebaseapp’
Error:(26) No resource identifier found for attribute ‘layout_behavior’ in package ‘info.pradeep.firebaseapp’
Error:(13, 20) No resource found that matches the given name (at ‘theme’ with value ‘@style/AppTheme.AppBarOverlay’).
Error:(22, 25) No resource found that matches the given name (at ‘popupTheme’ with value ‘@style/AppTheme.PopupOverlay’).
Error:(34, 26) No resource found that matches the given name (at ‘layout_behavior’ with value ‘@string/appbar_scrolling_view_behavior’).
Error:(59, 23) No resource found that matches the given name (at ‘hint’ with value ‘@string/prompt_password’).
Error:Execution failed for task ‘:app:processDebugResources’.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:UsersAndroidAppDataLocalAndroidSdkbuild-tools24.0.0aapt.exe” finished with non-zero exit value 1

Dheeraj Parashar

Just remove the attributes that are causing the errors. They are not important, your application will run just fine.

HI,
could you please show me a way to start work on developing android antivirus.

or can you help me to give a basi idea and flow to start work on it. like basic concepts and basic keywords to search on google ?

wisnu kurniawan

waw its complette

Macharia

Hi Ravi can you write on storing binary files on Firebase(images and files)they are now supporting it..,

Naqib Shayea Qazizadah

Hi Ravi thanks for nice tutorials bro I want to know if I can implement this login and register method on my existing application? In my application after the user logs in he can post something and it goes to my own server.
I want to know if this is good for this kind of application?

omar

Appear to me in logcat [FirebaseApp initialization unsuccessful] i use your source code , and change google-server.json , what is the problam

Hi ravi,
I was just waiting for this tutorial can we expect somemore tutorials using firebase like inserting the datas as well as reading those datas from firebase

pm abi

Has any of your applications ever hit 50 concurrent connections hard limit while using the free spark plan??
The out of the box solutions looks promising for porting my application right away..But concerned of this small problem

Manish Kumar

Hey can you make a tutorial on how to make a booking calendar on an android app

Lets say my customer has taken food subscription for a month. they want to cancel few days out of that . A calendar to do that and they should not be able to pick up a date before todays date. any date before todays date should be blacked out , so that customers cannot select those dates.

hi ravi. they are just in the article the apk and completed code work just fine
i will take some snapshots and highlight the errors , but where to post them?
eg: the tools context in some layout files refer to another activity not the right one

Urja Pawar

Hi Ravi!, the correction is -> In xml of ResetPasswordActivity, it should be tools:context=”info.androidhive.firebase.ResetPasswordActivity” instead of tools:context=”info.androidhive.firebase.LoginActivity”

Great tutorial:)
Can you help me with this error:
i cant move to the signup page from login page on clicking”get registered in Firebase” button.It says Null pointer exception:trying to invoke virtual method ‘void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)’ on a null object reference in the logcat.Everything else works fine.

Aiman Baharum

Always the best bro

Podster

The download source code does not work. It goes to the download page but nothing gets downloaded, even if you logged in.

Thanks.

Abhishek Kumar

Sir,

I am using fragment for the designing of the firebase simple login registration.

Check your gradle files to see if have properly imported everything or not.

Abhishek Kumar

I already checked it everything is fine as described here.

Amar Bakir

I solved this exact problem today and stumbled onto this unanswered question by chance during the process.

First, ensure you’ve properly setup Firebase for Android as documented here: https://firebase.google.com/docs/android/setup. Then, make sure you are compiling the latest version of the Firebase APIs (9.2.0) and the Google Play Services APIs (9.2.0) that you are using. My gradle dependencies look something like this:

are you have any idea to how push notification from android to android device by using firebase push notification

Ravi Kumar

its a kind request , you have till now tought us about how to log in and all . it will b very helpfull if u can show how to set up user profile after that . means login in though email id and password after that a create profile page in which we let them set their images and name and store all the information on database

atul o holic

Awesome tutorial man. Cheers to you and Thank you 🙂

Just a small thing which I found, the below piece of code is called twice in the LoginActivity class, not sure if its there purposely.

//Get Firebase auth instance
auth = FirebaseAuth.getInstance();

PINKesh Darji

Just comment out any one.

MITEN SHAH

Heyyy… I am getting an error while gradle sync.
It shows Failed to resolve: com.google.firebase.firebase-auth:9.0.2
please help

Praneeth Chowdary

It seems that u haven’t installed the “Google Repository”
First install it in the SDKmanager>Extras>GoogleRepository

MoHit KaUsh!k

i think this is maybe my android studio version 2.1.2 ??

Praneeth Chowdary

It doesn’t matter in what version you are developing
I’m also using the sae version

Afif FirZil

Hai sir, how can we know that database in firebase cloud has been changed while the app is in background or inactive? how to give notification to device while user not open the app if there is new data?

Eyal Engel

Hi Ravi, amazing guide! I learned a lot, thank you!
One question please – if I have a facebook Login button – then how do you I save the user in Firebase? I only have his email but not a password.
Thanks!

Hi Ravi thanks for your really great tutorial, I am having this issue when I try to make a build: Error:(45, 54) error: cannot find symbol variable toolbar, the error is located in LoginActivity.java with the code : Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar); thanks for your help

PINKesh Darji

This is because you have no toolbar with id toolbar in layout xml file.
Comment out both line in LoginActivity.java and you are done.
// Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
// setSupportActionBar(toolbar);

Dilpreet

import com.google.firebase.auth.FirebaseAuth;
Getting an error on FIREBASEAUTH.
PLZ help me on this

Praneeth Chowdary

First u have to install the “Google Repository” in the SDK manager then rebuild the project

Mohit

can’t resolve com.google.firebase.auth.FirebaseAuth ?????

Praneeth Chowdary

U have to the add the following code
dependencies {
compile ‘com.firebase:firebase-client-android:2.5.2+’
}

In the build.gradle
Then rebuild the project
If this doesn’t help you feel free to ask……..😃

MoHit KaUsh!k

i think this is maybe my android studio version 2.1.2 ??????

Prashant

Another great tutorial……..thank you

Praneeth Chowdary

When I click the Register Button and Login me Button the app closes is there any solution for it……?
can anyone provide the manifest file for this application

Rahul Deewan

Hello Ravi. Thanks for a very good tutorial. I would like to know one thing that how to store user profile in Firebase database along with the user’s Email and Password.

Sir, DefaultHttpClient is not working in SDK version 23 , buildToolsVersion 23.0.3 and using Marshmallow 6.0. Please suggest the correct way to handle this.

dhruv thakker

i created account with id asdf@sty.com password asdfghjkl where do i get the reset link how can i see that email

sar

should be on your email you registered with

dhruv thakker

if it means the account where i got firebase services.json file than no it is not there

Purvik Rana

I have put Firebase Authentication in one of my application. Now what i’m facing, every time when i close my app and ope it again, it will popup login window again. What that means actually!! Is it signing out the user when we close the application? Reply with the Answer ASAP.:)

thanks for the reply but tell me one thing google play service version should be same firebase version these are my dependencies dependencies {
compile fileTree(dir: ‘libs’, include: [‘*.jar’])
compile ‘com.android.support:appcompat-v7:23.2.0’
compile ‘com.google.firebase:firebase-auth:9.2.0’
compile ‘com.google.firebase:firebase-database:9.2.0’
compile ‘com.google.android.gms:play-services-location:9.2.0’

}
apply plugin: ‘com.google.gms.google-services’

tell me if i am doing anything wrong I am getting this error W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.

Vikas Kumar

thanks for the reply but I am still getting this error
Local module descriptor class for com.google.firebase.auth not found.
and these are my dependencies

What an awesome post thanks!
I have an one question that how to record video demo shows mobile UI nicely like yours?
Is there any tool?
Please recommend any tool or method to record demo videos.
thanks

Thanks for the Tutorial but my app did not run because the Google Play Services in my Emulator is out of date..I have tried everything thats has been said in almost all chats and tutorial but i haven’t found any solution to that.Am welcoming any suggestions

Zubair Ahmad

where you have a problem dear ?

‫إليود نجوغونا‬‎

The Tutorial was amazing ..but am having issues updating my Google Play Services in my Emulator…whenever i try to login or signup the emulator pops up a message “The App won’t run unless you update Google Play Services”

Thanks for the tutorial. but i cant able to access my data after adding user and logging in. i have a criteria that by using the child name i need to get my data from firebase. but i am not able to get that please help me its urgent please it my humble request. any one can help me in this. what should i do now please help me.

ketan sethi

Thanks! Thanks! Thanks! so much..implemented successfully 🙂

Mohit Khaitan

Hey Ravi, you have shown only two credentials that are getting saved in the database. What if I have to save other credentials like Username, Phone, etc. Please help me out with this !!

hi ravi, i have some error
can u plz give solutions? …everything i have applied ur code and gradle also build successfully but after installation of apk it shows “unfortunately firebase auth stopped.”.

The download code button is present at the top of the article. Use Google, facebook or other options to sign up and download.

Mandeep Singh Aulakh

hello Ravi i am follow all your code and thanks for all the code it help alot.
I want to add my firebase url in the app for testing purpose but cannot find where to put json file and url in the app
please help me….
becoz i am new in android firebase.

You don’t have to put any firebase url in the project. Instead you need to add the google-services.json file downloaded from your firebase console. Using this file the app automatically connected to your firebase app.

Mandeep Singh Aulakh

Thanks for the help

Shubham Tyagi

hello there…
really awesome tutorial…just need some more help…in the registration activity….i also want to take user name, mobile no, address, etc…with the email id and password…and when the user login….i want to display that information….how can i do that..please help…

kirti

plz helpmehow can i resolve the jeson file missing error

Hillarie Kip

download the json file and copy it to the App folder in your application

sign in working but sign up isn’t it will give error in debuging console E/UncaughtException: java.lang.NoClassDefFoundError:
D/FirebaseCrashApiImpl: throwable java.lang.NoClassDefFoundError:

Lavet Adhiambo

Hi Ravi, this is a cool tutorial but I am getting this error:Caused by: java.lang.IllegalArgumentException: Given String is empty or null.I’m I supposed to add something on my get firebase auth instance method?

Simone Biliato

Hello,
thank you for this tutorial. I have a simple question.
Please how do I send the verification email, after a user sign up?

Varsha Chauhan

Hello sir…
tutorial is really helpful..earlier i was struggling with wamp server but working with firebase is easy.
But i m having an error in my application. I have done exactly same but the “signup_activity.xml is giving me error “Rendering problems… Following classes could not be found: -android.support.design.widget.CoordinatorLayout ” please help me out.

Vinayaka SP

Hi Ravi, I really thank you a lot for making my engineering student life easier. I have used your many tutorial to implement college projects successfully. But now I’m facing a problem in this tutorial.
Everything is fine and error free but I’m getting error while changing password and email id.
I have included those codes in onCreateView of fragment.
I really not getting whats wrong.
Please help me.

Hi Ravi, Nice Tutorial.
Apart from these things i want other features like users presence, typing status and important is off line notification.
Can you please guide me how to achieve this using firebase.

E/AndroidRuntime: FATAL EXCEPTION: main
Process: info.androidhive.firebase, PID: 547
java.lang.NoClassDefFoundError: info.androidhive.firebase.Login_Activity$1$1
at info.androidhive.firebase.Login_Activity$1.onClick(Login_Activity.java:146)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18439)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5158)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
D/FirebaseCrash: Saving crash

Android Dethshot

Ravi Tamada,
The exception come with auth
i cant create users or log with user name or password
The exception came from this line

auth.createUserWithEmailAndPassword(email, password)

when i pass email, and password it says java.lang.NoClassDefFoundError:

Shubham Tyagi

heyy ravi….need some help again….i am saving the data in one activity..and i want to retrieve the same data in another activity..how can i do that..please reply ASAP..

Hi Ravi, thank you very much for tutorial.
I used navigation drawer material design with this project,
how should I show user profile (name and email) at navheaderview?

saisheshu p

Hi.. nice tutorial.. I am Signing into Google using firebase Authentication and successfully getting the ‘IdToken’ , Now i want to verify this token on my server.. I have downloaded firebase jar files and imported to my Server side project. But when i tried to verify the Token using following code.

com.google.firebase.auth.FirebaseAuthException: Token is not for this app

at com.google.firebase.auth.internal.FirebaseTokenVerifier.verifyTokenAndSignature(FirebaseTokenVerifier.java:52)

at com.google.firebase.auth.FirebaseAuth$1.call(FirebaseAuth.java:146)

at com.google.firebase.auth.FirebaseAuth$1.call(FirebaseAuth.java:140)

at com.google.firebase.tasks.Tasks$1.run(Tasks.java:63)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Please help me… Thanks in advance…

manikandan@enhandstechies.com

waste

manikandan@enhandstechies.com

not understandable

Café Nâu

why?

Udo Klimaschewski

Thank you, very easy to understand tutorial, which covers all the tasks needed for e-mail authentication using firebase. The Google documentation is very terse. Using your tutorial, I was able to implement authentication to my app in a few hours.

Nirav Jain

Ravi you forgot to add change DisplayName option
Its the only thing you missed in Profile

When I try to connect to Firebase via toolsFirebaseAuthentication this error ouccurs:

Firebase A config file “C:UsersUserDesktopAndroid ProjeBookTimerappgoogle-services.json” was found, but it indicates a project ID “book-timer” that you don’t appear to have access to. Request access or delete the file in order to proceed with the connection process.

dsrtradefx

Thanks for the great tutorials! I have 3small issues. On the SignUpActivity.java I am getting the error cannot resolve method createUserWithEmailAndPassword (java.lang.string, java.lang.string). On the LoginActivity.java I am getting error cannot resolve method ‘getCurrentUser ()’ and error cannot resolve method ‘signinWithEmailandPassword(java.lang.string, java.lng.string).

Have you added firebase dependencies in build.gradle correctly? Or check the import statements at top in activity.

dsrtradefx

Hey Ravi. Thanks for the quick assistance. I had compile ‘com.google.firebase:firebase-admin:4.0.3’ in my app gradle… I commented it out and once I worked thru some other minor errors in my app, I got it fixed. I’m not 100% sure that was the exact issue, but it is working now. Thanks again!

When i import com.google.firebase.auth.FirebaseAuth package then it is show that FirebaseAuth can not resolve,What is solution?

Ahmet Eroglu

Hello how can I make sure that signed up email addresses are actually valid e mail addresses? I mean I use to sendemailverification to verify account but lets say user entered “youarestupid@gmail.com” and even tho he wont get any verification mail the account is still added to authentication database, so how can we eliminate this problem to not fill database with bullshit emails?

Andrew Richard

I CANT DOWNLOAD THE CODE

Kavan Vadaliya

How to add sign with google on this code ?

Chandrasekhar Majhi

Bro, the code is not working. Registration and login both action are not happening.

Kevin Tesar

It works for me. What errors are you seeing?

Nishi Dixit

Thanks! your article helped me a lot….but i wanted to ask if i want to authorise user using mobile numbers not emails then how can i do with Firebase..

Muhammad Afnan

Good Question. I am having same problem.

Jay Joshi

Awesome article for initial FCM learner…Helped a lot! Thank you

Kennedy Ndegwa

hi ravi could you have a sample where the user can use their facebook/Gplus acc to login
Thanks awesome Tutorial….

YSY

Hi Ravi, i am a beginner,
i have this problem when i try to register with my email account and password, after clicking the register button it shows createUserWithEmail:onComplete:false and (Authentication failed.com.google.firebase.FirebaseNetworkException:A network error occur such as timeout, interrupted connection or unreachable host has occured)

please help advice
thanks.

Abohi

Enable sign in with email and password in the authentication tab in firebase under method.
Hope it helps

YSY

Hi, i already did but it still didnt work

Café Nâu

@disqus_PHxylADiFK:disqus You must enable your internet connection before do your email and password registering 🙂

Greate post! Thanks!
Firebase sounds like a server platform that it handle all common tasks that a popular server do.
I think the backend team will lost some tasks when use this technology, for example: account management, message pushing, storage, …. 🙂
Do I think correctly?

Jibin Philip

Hi, Iam using firebase to register a user. it works. but when i try to get the userid of the registered user from db, it shows error or null. I need the userid to update the profile

kamla sharma

hello Sir,
i want to integrate the sms api in my android application. Can you guide me how can i achieve this with android application?

Reuben Kaponde

Hi great tutorial. How can i allow for the user to add more information to their profile after registering. such as profile picture, address, phone number, etc? Thanks.

Ciaran426

Hi Ravi

When I paste in the code for the LoginActivty Xml it keeps throwing up rendering problems. I have tried a few different things but cannot find the solution. errors below

Rendering Problems Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layout to choose a different layout, or fix the theme style references. Failed to find style with id 0x7fff0140 in current theme (3 similar errors not shown)
‘Android_Tutorials/FirebaseAuthTutorial/app/src/main/res/layout/activity_signup.xml” in attribute “imeActionId” is not a valid integer

Sumit

Hi Ravi,

I tried above code many time, But when I put dependency in build.gradle(Module.app)
I am getting error please help me. I am using 23.0.2

Hey, I’m trying to figure out how can I store additional user data (such as date of birth and full name) using Firebase instead of just default e-mail and password. Unfortunately all the guides/documentation I found so far are very confusing for someone who hasn’t used Firebase before and/or don’t relate to Android and Java development. I would really appreciate some advice as to what would be the best way to add some extra fields to my registration form and then store that data in Firebase.

JustForFun App

Hey Jacek,

You can store other information of user. You need to create a node called user and when ever user registers you need to create object of users which has all details like name, dob etc and push it to that node. Hope this helps.:)

hi @ravi8x:disqus I faced the issue about token refreshed in firebase. When user login in different device with same user ID, token gonna refreshed to the new one device, and the older token gonna invalidated after 60minutes right?

And if I want to give push notification after 60 minutes end. User with the newer token gonna get the notification, the user with older token is not going to get notification, right?

My main question is. Is the firebase Auth can be handling about the issue I faced?
Please give me some insight!

I don’t know, I have no idea about it. I still looking for reference for handling token to be used multi login in one account for push notif. May be you have any suggestion for me about the issue I facing?

Arteezy

will this store details(registration) in database or only in auth section of firebase

Yusuf Charles

Nice Post. I am trying to build an app where user registers and chooses a particular item (fruits or food). Based on the item he chooses, he is automatically paired with someone (another user) that chooses the same item he has chosen. Can anyone help out?. Please

i am getting an error===== “cannnot find symbol variable toolbar”? how to handle this error?

Anangpal Singh Rathore (Nandsi

I also have same error … all id on right place but it show error..
if you solved it than tell me also please.

Jay Clarens

i also have same error.

Tired

dude jus choose to ignore all the error, im getting the same error as well.

Nurfarahin Natasya

Hi. Its a great tutorial here. Helps me a lot. But i would like to ask, is there a possible way that I can retrieve user’s password from Firebase? Or create another input in Login page to differentiate the user category and store it into the firebase authentication?

saravana

where the data are stored

Nandha kumar

In The Firebase Console -> users Section.

Seul Mi

SUCK, ITS LOADING TOO LONG :((

Pooja Ravi

When i try to run the app,it shows firebase auth has stopped on my phone.Please help!

Ankita Indi

@ravi8x:disqus sir can i add navigation drawer to this exisiting source code that i have downloaded

FATAL EXCEPTION: main
Process: deckydroid.login_firebase, PID: 8026
java.lang.RuntimeException: Unable to start activity ComponentInfo{deckydroid.login_firebase/deckydroid.login_firebase.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
at android.support.v7.app.AppCompatDelegateImplV9.setSupportActionBar(AppCompatDelegateImplV9.java:207)
at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:130)
at deckydroid.login_firebase.MainActivity.onCreate(MainActivity.java:36)
at android.app.Activity.performCreate(Activity.java:5411)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
04-24 11:53:44.542 8026-8026/deckydroid.login_firebase I/Process: Sending signal. PID: 8026 SIG: 9

Please Help Me

Mohan

i’m facing the error com.google.firebase.database does not exist. help me to resolve this error

Cem

Hey man, it’s a very nice tutorial thank you for that. I tried to compile the code and it works well but there is a problem when I login or register via emulator it just waits and does nothing. It doesn’t sent the data to firebase, There is a waiting symbol which is rotating, just rotating.. Why it’might be doing it?

@ravi8x:disqus
Hi, Well tutorial. Thank you so much. But i still have some problem and can’t fix it .
I just copy the code you posted. with the xml have a error message : Render Problem
Couldn’t resolve resource @id/visible
Can you help me to fix this bug ?

How to fix: add these values to a values file (the filename doesn’t appear to matter, I use ids.xml)

Raymond Lau

Not sure about this because i am using Android Studio! Will this affect for your coding?

Fahim Khan

activity_login.xml i’m also facing the same error

Nilvandro Muianga

Nice tutorial, it was so helpful to me.

Mohan

sir I created the app by following your tutorial, when I run it in emulator signup activity works well but I click the forgot password or login button the application exits.

Sanchit Kalra

I created the app but when I launch the app on device, the app doesn’t start and instead crashes. It says that the app has stopped. I followed the tutorial is given. Why is my app crashing and how can I fix this?

Wassup Ravi. I have followed your tutorial and everything is working perfectly. Though i got an issue. When i register a user and go back to the Log in page, the Log in button is not working. In fact all buttons on the log in page stop working . What could be the problem?

//authenticate user
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(LoginActivity.this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
progressBar.setVisibility(View.GONE);
if (!task.isSuccessful()) {
// there was an error
if (password.length() < 6) {
inputPassword.setError(getString(R.string.minimum_password));
} else {
Toast.makeText(LoginActivity.this, getString(R.string.auth_failed), Toast.LENGTH_LONG).show();
}
} else {
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
});
}
});
}}

DV

Process: com.example.com.sample, PID: 8082
java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.Class java.lang.Object.getClass()’ on a null object reference
at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:380)
at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:375)
at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:103)
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1034)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1248)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1116)
at android.support.v4.view.ViewPager$3.run(ViewPager.java:273)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:616)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)

Eliott Balmin

Hi, can i use modified code from this tutorial in an app that is meant to be published?

Hi, I’m stucked at the LoginActivity.java part, when I compile it, the (Error:(41, 54) error: cannot find symbol variable toolbar) showed, it highlights all the r.id, if I delete Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); , the code can be compile without error but when you install it on your phone it will crashed. How to fix this? Thank you.

Tham

TO ANY 1 still LOOKING at this tutorial, DO NOT USE THE CODE ABOVE!!!!!! You can use it to understand the procedure but please do not copy n paste it, just download the complete code and change to whatever you want it to be. The code above is fullfilled with ton of errors if you copy and paste it because it is different with the code he used as in the downloaded code.

hi Ravi, why my login session always stopped working when i clicked it, is there right code for LoginActivity, same with MainActivity?, please reply soon

Julian Parker

Inside of the signup activity you need to create an Intent.

startActivity(new Intent(SignUpActivty.this, LoginActivity.class));

Bhavik Mehta

nope that is not the solution. what if there are multiple users? i am having one issue.
if i am clicking on “already registered. login me” . it does take me to login screen, but does not show anything. (in short i am not able to go to login screen anyhow).

rachana

i am getting these errors while executing the program.can u please explain?

what if i want to store some int data on to each account. Will this make things a lot more complicated? I have no idea how to store data on to the account. It would be great if you help me. Thanks in advance.

Hi ravi ,
Thanks a lot every think now looks perfect ,
I’m not sure about what is the problem exactly but I recreated all the project and every think is fine thanks a lot (used android studio –tools –> firebase )

‘
I figured out problem if you use firebase build in integration in android studio you get this error but if you did in firebase console and manually add sha-1 to Project then download google-service.json it solve my problem’

Yeshas Siddi M S

Thanks, Ravi! I have an app where first activity lists four users names. On clicking each users name, another activity opens where the user can register for the first time. After registration, lets consider that the user kills the app. The user id would have been created in firebase. When user opens the app again and clicks on his/her name in the first activity, he/she should be taken directly to the login page and not the register page. How do I make the app learn that this particular user has already registered and should be taken to login page? Please advise.

You can maintain a flag indicating whether the user is buyer or vendor. Add a flag type with value 1 or 2 (1 = buyer, 2 = vendor) to same users node. This should be done when the user is registering through your app.

taufan99

How or where do I maintain the flag. Is there any further explanation for this?

Thank you in advance.

Mehul Gajjar

i implemented your tutorial but i want to know that how to check login type during reset password? without user login.. i want to prevent reset password to user who logged in using social login… any tactics to check login provider type?

Muhammad Khurram

Ravi very helpful tutorial. But what I need to do and how if I want to add some extra fields like name address while registering new user. I did research on it but found nothing helpful … ?

Navigation Drawer mainly inflates from menu file. If you want dynamic list in navigation drawer, try using RecyclerView in NavigationView.

David

okay thank u 1 more doubt
in my app it should be lyk
first splash
then login
and navigation drawer

David

with fragments

Angga Zan

hi sir, thanks for the tutorial….how i to get logged in user email so i can connect it to my current mysql database?

UP760057

Hi there, Tineshia here 🙂 , i have followed the instructions and everything works, but when I log into firebase to see the users, even when i have signed up through the app, the firebase authentication section shows no users ?

This is the problem that i found in logcat, i’m so sorry sir i’m a newbie for creating an android application. And this is my very 1st school project that need to be submitted to my panel next week. Hoping for your help sir Ravi.

Found the solution, It wasn’t that hard and yes it was XML, create new XML instead of CoordinatorLayout it can be LinearLayout and pass all attributes to the new and delete the old one without “safe deleting” Same name, same data only without widgets.