猿问

FirebaseAuth.getInstance 返回 null

我刚刚开始使用 Firebase 身份验证,我遵循了一些教程,包括 Firebase 的文档,但无论我做什么,FirebaseAuth.getInstance() 总是返回 null。尝试了半天,我决定把之前做的和Authentication相关的东西都删掉,重新开始,这样我就只用FirebaseAuth变量的声明和初始化了,如下:在类变量中初始化:


private FirebaseAuth mAuth;

然后在 onCreate() 方法中我调用了一个初始化firebase变量和引用的方法,所以我调用了以下方法:


private void initFirebase()     //initialize firebase

    {

        FirebaseApp.initializeApp(this);

        mAuth = FirebaseAuth.getInstance();

        mFirebaseDatabase=FirebaseDatabase.getInstance();

        mDatabaseReference=mFirebaseDatabase.getReference().child("users");

        mEventsReference=mFirebaseDatabase.getReference().child("events");

        mStorageRef= FirebaseStorage.getInstance().getReference();

        defaultRef = mStorageRef.child("usersProfilePic/");             //Assigning default reference for storage

    }

我在 build.gradle 中的依赖项是:


apply plugin: 'com.android.application'


android {

    compileSdkVersion 28


    /*dataBinding {

        enabled = true;

    }*/

    defaultConfig {

        applicationId "com.example.android.aln4"

        minSdkVersion 16

        targetSdkVersion 28

        versionCode 1

        multiDexEnabled true

        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }


    buildTypes {

        release {

            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

    }

    compileOptions {

        targetCompatibility 1.8

        sourceCompatibility 1.8

    }

}


dependencies {

    implementation fileTree(dir: 'libs', include: ['*.jar'])

    //noinspection GradleCompatible

    testImplementation 'junit:junit:4.12'


    //google maps api

    implementation 'com.google.android.gms:play-services-maps:16.0.0'

    implementation 'com.google.android.gms:play-services-location:16.0.0'

    implementation 'com.google.android.gms:play-services-places:16.0.0'


在 Firebase 身份验证网站本身中,我已经在登录方法中启用了身份验证服务。


所以,如果有人能告诉我这里出了什么问题,我会很高兴的,因为我在过去的 6 个小时里都在试图弄清楚......


呼啦一阵风
浏览 399回答 3
3回答

墨色风雨

文档至少告诉我们,返回的是什么FirebaseApp.initializeApp(this);:默认值FirebaseApp,如果之前已初始化,或者 Firebase API 密钥存在于字符串资源中。null否则返回。确保在build.gradle块的底部应用 Google 服务插件android... 因为这是它们的API keys in string resources来源。这是FirebaseAuth.getInstance()返回的唯一合乎逻辑的解释null。这个加了两次:com.firebase:firebase-client-android:2.5.2。版本不匹配可以通过排除来解决:implementation ("com.firebaseui:firebase-ui-database:2.1.1") {    exclude group: "com.android.support", module: "recyclerview-v7"}以便它将使用com.android.support:recyclerview-v7:28.0.0。

撒科打诨

getInstance() 用于检查用户是否登录。null 表示您未登录。

天涯尽头无女友

将此添加到您的清单中:<service&nbsp;android:name="com.google.firebase.components.ComponentDiscoveryService"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<meta-data &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:value="com.google.firebase.components.ComponentRegistrar"&nbsp;/>如果存在相同的服务,请添加简单的元数据标签。
随时随地看视频慕课网APP

相关分类

Java
我要回答