android - Firebase code not creating new user -
the code login/register class is:
package com.example.joshpc.bluetoothattendee; import android.app.progressdialog; import android.content.intent; import android.support.annotation.nonnull; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.text.textutils; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.toast; import com.google.android.gms.tasks.oncompletelistener; import com.google.android.gms.tasks.task; import com.google.firebase.auth.authresult; import com.google.firebase.auth.firebaseauth; public class loginactivity extends appcompatactivity { private edittext etemail; private edittext etpassword; private edittext etregpw; private firebaseauth firebaseauth; private button loginbut; private button regbut; private progressdialog message; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_login); etemail = (edittext) findviewbyid(r.id.etemail); etpassword = (edittext) findviewbyid(r.id.etpassword); etregpw = (edittext) findviewbyid(r.id.etregpw); firebaseauth = firebaseauth.getinstance(); loginbut = (button) findviewbyid(r.id.blogin); regbut = (button) findviewbyid(r.id.bregister); message = new progressdialog(this); regbut.setonclicklistener(new view.onclicklistener(){ @override public void onclick(view v){ userregister(); } }); loginbut.setonclicklistener(new view.onclicklistener(){ @override public void onclick(view v){ userlogin(); } }); } private void userregister(){ string email = etemail.gettext().tostring().trim(); string password = etpassword.gettext().tostring().trim(); string verify = etregpw.gettext().tostring().trim(); if(textutils.isempty(email)){ toast.maketext(this, "please enter email", toast.length_short).show(); return; } if(textutils.isempty(password)){ toast.maketext(this, "please enter password", toast.length_short).show(); return; } toast.maketext(this, email, toast.length_short).show(); if(textutils.equals(password, verify)){ message.setmessage("registering user..."); message.show(); firebaseauth.createuserwithemailandpassword(email, password) .addoncompletelistener(this, new oncompletelistener<authresult>() { @override public void oncomplete(@nonnull task<authresult> task) { if(task.issuccessful()){ toast.maketext(loginactivity.this, "successful registration", toast.length_short).show(); message.hide(); senddata(); } if(!task.issuccessful()){ toast.maketext(loginactivity.this, "failed registration", toast.length_short).show(); message.hide(); return; } } }); } else { toast.maketext(this, "passwords not match", toast.length_short).show(); return; } }
whenever run portion of code, ends showing toast message of "failed registration" , i'm not sure why. have tested values of email, password, , verify toast messages make sure being passed in correctly. have checked firebase suggested code authenticate users on android well.
my gradle build file is:
apply plugin: 'com.android.application' android { compilesdkversion 25 buildtoolsversion "25.0.0" uselibrary 'org.apache.http.legacy' packagingoptions { exclude 'meta-inf/license' exclude 'meta-inf/notice' exclude 'meta-inf/notice.txt' } defaultconfig { applicationid "com.example.joshpc.bluetoothattendee" minsdkversion 19 targetsdkversion 25 versioncode 1 versionname "1.0" testinstrumentationrunner "android.support.test.runner.androidjunitrunner" vectordrawables.usesupportlibrary = true } buildtypes { release { minifyenabled true debug{debuggable = true} proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile filetree(include: ['*.jar'], dir: 'libs') androidtestcompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.0.0' compile 'com.google.android.gms:play-services-gcm:9.6.1' compile 'com.google.firebase:firebase-auth:9.6.1' compile 'com.google.firebase:firebase-core:9.6.1' compile 'com.google.firebase:firebase-database:9.6.1' testcompile 'junit:junit:4.12' } apply plugin: 'com.google.gms.google-services'
i running on emulator well.
if there needs edited in better trouble shooting please let me know.
update: user account registered showing in firebase, app still kicking error message out @ me.
if want know why creating user fails, should display reason firebase authentication gives you:
if(!task.issuccessful()){ firebaseauthexception e = (firebaseauthexception )task.getexception(); toast.maketext(loginactivity.this, "failed registration: "+e.getmessage(), toast.length_short).show(); message.hide(); return; }
i highly recommend not using toasts display type of information, instead (or additionally) log it, have permanent record while developing:
log.e("loginactivity", "failed registration", e);
Comments
Post a Comment