无法通过Firebase进行身份验证

时间:2018-08-07 16:28:32

标签: android firebase kotlin firebase-authentication

我正在尝试使用通过控制台添加的凭据在模拟器上登录Firebase。

代码如下:

val auth = FirebaseAuth.getInstance()

auth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // ...
            } else {
                // ...
            }
        }

从未触发OnCompleteListener回调。

我遵守了Firebase文档中的指南

  • google-services json文件
  • 项目依赖项
  • 应用依赖项
  • 已启用电子邮件/密码登录方法

知道我在做什么错吗?

成绩文件-项目:

buildscript {
    ext.kotlin_version = '1.2.60'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        classpath 'com.google.gms:google-services:4.0.2'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

成绩文件-应用

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "..."
        minSdkVersion 23
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner  "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'

    implementation 'com.google.firebase:firebase-auth:16.0.2'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'
}

apply plugin: 'com.google.gms.google-services'

3 个答案:

答案 0 :(得分:1)

您的电子邮件或密码有效吗?

您可以添加“ addOnFailureListener”以查看实际发生的情况。

 auth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // ...
                } else {
                    // ...
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(context, e.getMessage(),Toast.LENGTH_SHORT).show();
                }
            });

答案 1 :(得分:1)

尝试在build.gradle文件中添加以下依赖项:-

implementation 'com.google.firebase:firebase-core:16.0.1'

我还建议您使用最新的Firebase依赖项。

答案 2 :(得分:0)

我通过以下方式解决了问题

  • 添加新的模拟器
  • 在开发人员控制台中启用Identity Toolkit API(仅在新模拟器上的logcat中显示错误)

对于那些正在使用模拟器并尝试了所有建议答案的人来说,此解决方案可能会有所帮助...