程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了FirebaseAuth.getInstance() 返回 null大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决FirebaseAuth.geTinstance() 返回 null?

开发过程中遇到FirebaseAuth.geTinstance() 返回 null的问题如何解决?下面主要结合日常开发的经验,给出你关于FirebaseAuth.geTinstance() 返回 null的解决方法建议,希望对你解决FirebaseAuth.geTinstance() 返回 null有所启发或帮助;

我在从 Firebase 获取 mAuth.geTinstance() 时遇到问题。它总是返回空值。 由于这个问题,整个应用程序崩溃,我无法继续。我该如何解决这个问题?

我尝试修改 gradle 版本,但这些都没有解决任何问题。我在这里添加了必要的代码片段。

AndroIDManifest.xml

<?xml version="1.0" enCoding="utf-8"?>
<manifest xmlns:androID="http://scheR_965_11845@as.androID.com/apk/res/androID"
    package="com.example.smartfaRMANdroIDapp"
    xmlns:tools="http://scheR_965_11845@as.androID.com/tools">

    <uses-permission androID:name="androID.permission.INTERNET"/>

    <application
        androID:allowBACkup="true"
        androID:icon="@mipmap/ic_launcher"
        androID:label="@String/app_name"
        tools:node="replace"
        androID:rounDicon="@mipmap/ic_launcher_round"
        androID:supportsRtl="true"
        androID:theme="@style/theme.smartFaRMANdroIDApp">
        <activity
            androID:name=".MVVm.VIEw.ActivitIEs.DrawerActivity"
            androID:label="Drawer Activity"
            androID:theme="@style/Apptheme.NoActionbar"
            androID:windowsofTinputMode="adjustPan"/>
        <activity androID:name=".MVVm.VIEw.ActivitIEs.MainActivity" />
        <activity androID:name=".MVVm.VIEw.ActivitIEs.LoginActivity">
            <intent-filter>
                <action androID:name="androID.intent.action.MAIN" />

                <category androID:name="androID.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

摇篮:模块

apply plugin: 'com.androID.application'
apply plugin: 'com.Google.gms.Google-services'

androID {
    compileSdkVersion 30
    buildToolsversion "30.0.3"

    defaultConfig {
        applicationID "com.example.smartfaRMANdroIDapp"
        minSdkVersion 16
        targetSdkVersion 30
        versionCode 1
        versionname "1.0"
        multIDexEnabled true
        testinstrumentationRunner "androIDx.test.runner.AndroIDJUnitRunner"
    }

    buildTypes {
        release {
            MinifyEnabled false
            proguardfiles getDefaultProguardfile('proguard-androID-optimize.txt'),'proguard-rules.pro'
        }
    }
    compiLeoptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencIEs {

    implementation 'androIDx.appcompat:appcompat:1.3.0'
    implementation 'com.Google.androID.material:material:1.3.0'
    implementation 'androIDx.consTraintlayout:consTraintlayout:2.0.4'

    //Firebase Authentication
    implementation platform('com.Google.firebase:firebase-bom:28.0.1')
    implementation 'com.firebaseui:firebase-ui-auth:7.1.1'
    implementation 'com.Google.firebase:firebase-auth'
}

摇篮:项目

// top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositorIEs {
        Google()
        jcenter()
        mavenCentral()
    }


    dependencIEs {
        classpath 'com.androID.tools.build:gradle:4.1.2'
        classpath 'androIDx.navigation:navigation-safe-args-gradle-plugin:2.3.5'
        classpath 'com.Google.gms:Google-services:4.3.8'

        // NOTE: Do not place your application dependencIEs here; they belong
        // in the indivIDual module build.gradle files
    }
}

allprojects {
    repositorIEs {
        Google()
        jcenter()
    }
}

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

登录活动.java

 private static final int SIGN_IN = 42;
    private static final String TAG = "LoginActivity";
    private FirebaseAuth mAuth;
    @OverrIDe
    protected voID onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        FirebaseApp.initializeApp(this);
        mAuth = FirebaseAuth.geTinstance(); //This line returns null 
    }

    @OverrIDe
    public voID onStart() {
        super.onStart();
        FirebaseUser currentUser = mAuth.getCurrentUser();
    }

我得到的整个错误异常如下:

E/AndroIDRuntime: FATAL EXCEPTION: main
    Process: com.example.smartfaRMANdroIDapp,PID: 16328
    java.lang.NullPointerException: Attempt to invoke virtual method 'com.Google.firebase.auth.FirebaseUser com.Google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference
        at com.example.smartfaRMANdroIDapp.MVVm.VIEw.ActivitIEs.LoginActivity.onStart(LoginActivity.java:191)
        at androID.app.instrumentation.callActivityOnStart(instrumentation.java:1435)
        at androID.app.Activity.performStart(Activity.java:8024)
        at androID.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
        at androID.app.servertransaction.transactionExecutor.performlifecycleSequence(transactionExecutor.java:221)
        at androID.app.servertransaction.transactionExecutor.cycletoPath(transactionExecutor.java:201)
        at androID.app.servertransaction.transactionExecutor.executelifecycleState(transactionExecutor.java:173)
        at androID.app.servertransaction.transactionExecutor.execute(transactionExecutor.java:97)
        at androID.app.ActivityThread$H.handlemessage(ActivityThread.java:2066)
        at androID.os.Handler.dispatchmessage(Handler.java:106)
        at androID.os.Looper.loop(Looper.java:223)
        at androID.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.androID.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:947)

解决方法

我尝试修改 Gradle 版本,但没有解决任何问题。

这根本与 Gradle 版本无关。除此之外,无需调用:

FirebaseApp.initializeApp(this);

如果您使用 official documentation 集成 Firebase。如果您进行标准集成,Firebase 将在应用启动时自动初始化。

您代码中的问题在于:

tools:node="replace"

它存在于您的 AndroidManifest 文件中。仅当想要 merge manifest files 时才应该出现。

要解决此问题,只需将其删除即可。

,
  1. 您是否从 Firebase 导入了 json 文件?

  2. 您的 gradle 文件有些奇怪。

    • apply plugin: 'com.google.gms.google-services' 移到 dependencies 之前 块
    • 使用 apply plugin: 'com.android.application' 作为 gradle 的第一行而不是 plugins { id 'com.android.application' }

大佬总结

以上是大佬教程为你收集整理的FirebaseAuth.getInstance() 返回 null全部内容,希望文章能够帮你解决FirebaseAuth.getInstance() 返回 null所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。