3

我正在尝试使用该createUserWithEmailAndPassword方法创建用户但无法这样做。正在调用 OnAuthenticate 方法,但用户对象为空,并且在 firebase 控制台内没有创建用户。这是我的代码,也是在线可用的代码。

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("9199999989@pintech.com", "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();
                    }
                }
            });
}

应用程序属性

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
}

应用程序.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'

注意 - 我已经尝试了来自 firebase 的网络解决方案来创建一个可以正常工作的用户。

4

8 回答 8

24

我也有这个问题。我用来测试应用程序的密码太短了。我将其扩展为更长的密码并且它起作用了。您必须满足谷歌的密码复杂性标准。

于 2016-07-11T21:01:35.690 回答
2

我花了 2 天时间寻找这个解决方案,才发现这是因为模拟器。尝试使用智能手机运行您的应用程序。对我来说,它奏效了。

于 2020-07-28T12:49:25.263 回答
1

对我来说,我解决这个问题的方法首先是确保我在 firebase 中启用了电子邮件/密码 signInAuth

最后我确定了这条线

mAuth.createUserWithEmailAndPassword(username,password)
                .addOnCompleteListener(**SignUpActivity.this**, task -> { 

... }) 有myactivity.this而不是this单独作为上下文

于 2020-12-24T18:15:17.660 回答
1

我也有同样的问题。

改变:

mAuth.createUserWithEmailAndPassword("9199999989@pintech.com", "corrfecthorsebatterystaple")
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>()

至:

mAuth.createUserWithEmailAndPassword("9199999989@pintech.com", "corrfecthorsebatterystaple")
            .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>()
于 2017-04-02T14:42:22.227 回答
0

仅适用于仍在寻找上面没有工作的东西的人:

我发现在我的作品this的第一个参数中的关键字之前使用您的活动名称。.addOnCompleteListener

例如。.addOnCompleteListener(LoginActivity.this, etc..);

希望这对仍在寻找的人有所帮助,亚当

于 2020-08-16T15:28:19.870 回答
0

我认为问题在于您可能没有在您的应用程序中添加 firebase SDK。

在模块(应用级)Gradle 文件(app/build.gradle)的依赖项中添加以下实现:

dependencies {
       implementation 'com.google.firebase:firebase-auth:19.3.1'
}
于 2020-05-26T12:03:54.260 回答
0

在 Firebase 控制台 Authentication--> 登录方法上启用电子邮件/密码登录方法:
身份验证-->登录方法

于 2020-05-09T16:08:06.760 回答
0

我花了整整 2 天的时间试图解决这个问题,最后发现我的模拟器没有连接到互联网。我在 Mac 的网络首选项中输入了 DNS 服务器,然后输入了 8.8.8.8 并重新启动了我的模拟器。它开始工作了!!

我遵循的说明: https ://medium.com/mobile-app-development-publication/making-android-emulator-connect-to-internet-e7b622a00f09

于 2020-11-16T06:45:16.910 回答