Reputation: 31
I'm trying to use the createUserWithEmailAndPassword
method to create users but not able to do so.
The OnAuthenticate method is being called but user object is null and no user is being created inside firebase console.
Here is my code, which is the one available online as well.
MAinActivity.java
private static FirebaseAuth mAuth;
private static FirebaseAuth.AuthStateListener mAuthListener;
private static String TAG = "RegisterDEbug";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
waitForDebugger();
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
// ...
}
};
mAuth.addAuthStateListener(mAuthListener);
mAuth.createUserWithEmailAndPassword("[email protected]", "corrfecthorsebatterystaple")
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
waitForDebugger();
Log.d(TAG, "Authentication successful");
if (!task.isSuccessful()) {
//Toast.makeText(this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
app.properties
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.pt.reg"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services:9.0.2'
//compile 'com.google.android.gms:play-services-auth:9.0.2'
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.google.firebase:firebase-auth:9.0.2'
}
apply plugin: 'com.google.gms.google-services'
Note - I have tried web solution from firebase for creating a user which works fine.
Upvotes: 3
Views: 17758
Reputation: 11
it also happens when you try to pass unapropriate email or dummy text like eg. email = fsjflk;
try adding @gmail.com or something relavent which seems like a valid email address eg. [email protected];
it worked for me i wasted 2 hours for passing dummy text like "fhsjhfk"
Upvotes: 0
Reputation: 200
For me, the way I solved this issue was firstly to make sure that I had enabled Email/Password signInAuth in firebase
lastly I made sure that the line
mAuth.createUserWithEmailAndPassword(username,password)
.addOnCompleteListener(**SignUpActivity.this**, task -> {
... }) had myactivity.this instead of this alone as the context
Upvotes: 1
Reputation: 1
I spent 2 full days trying to figure this out and finally observed that my emulator was not connecting to the internet. I entered the DNS server in my Mac's Network preferences and entered 8.8.8.8 and restarted my emulator. IT STARTED WORKING!!
Intstructions I followed: https://medium.com/mobile-app-development-publication/making-android-emulator-connect-to-internet-e7b622a00f09
Upvotes: 0
Reputation: 1
Just for anyone still looking something that hasn't worked above:
I found that using your activity name before the this
keyword in the first parameter of the .addOnCompleteListener
works for me.
eg. .addOnCompleteListener(LoginActivity.this, etc..);
Hope this helps anyone still looking, Adam
Upvotes: 0
Reputation: 21
I spent 2 days searching for this solution, only to find out it is because of the emulator. Try to use a smartphone to run your app. For me it worked.
Upvotes: 2
Reputation: 2412
I think the problem is that you might not have added the firebase SDKs in your App.
Add the following implementation inside the dependencies in your module(app-level) Gradle file(app/build.gradle
):
dependencies {
implementation 'com.google.firebase:firebase-auth:19.3.1'
}
Upvotes: 0
Reputation: 241
Enable email/password singn-in method on Firebase console
Authentication-->sign-in method:
Upvotes: 0
Reputation: 157
I have the same problem.
change:
mAuth.createUserWithEmailAndPassword("[email protected]", "corrfecthorsebatterystaple")
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
to:
mAuth.createUserWithEmailAndPassword("[email protected]", "corrfecthorsebatterystaple")
.addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>()
Upvotes: 1
Reputation: 391
I had this problem too. The password I was testing the app with was just too short. I extended it to a longer password and it worked. You have to meet google's password complexity standards.
Upvotes: 24