为了账号安全,请及时绑定邮箱和手机立即绑定

FirebaseAuth.getInstance 返回 null

FirebaseAuth.getInstance 返回 null

呼啦一阵风 2022-06-04 15:17:58
我刚刚开始使用 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 个小时里都在试图弄清楚......
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

文档至少告诉我们,返回的是什么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。


查看完整回答
反对 回复 2022-06-04
?
撒科打诨

TA贡献1934条经验 获得超2个赞

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



查看完整回答
反对 回复 2022-06-04
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

将此添加到您的清单中:

<service android:name="com.google.firebase.components.ComponentDiscoveryService">
        <meta-data
            android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
            android:value="com.google.firebase.components.ComponentRegistrar" />

如果存在相同的服务,请添加简单的元数据标签。


查看完整回答
反对 回复 2022-06-04
  • 3 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号