FirebaseAuth.getInstance()返回“null”时应用程序终止

时间:2016-10-13 17:54:12

标签: android firebase firebase-authentication

所以我从Firebase开始,我正在浏览最近发布的在线教程。

有一次,我们必须启动应用程序并且有一些代码:

// Initialize Firebase Auth
mFirebaseAuth = FirebaseAuth.getInstance();
mFirebaseUser = mFirebaseAuth.getCurrentUser();

if (mFirebaseUser == null) {
    // Not logged in, launch the Log In activity
    loadLogInView();
}

这是放在onCreate()中。问题是每当我尝试运行应用程序时,我都会遇到以下异常:

java.lang.IllegalArgumentException: Given String is empty or null` for line 28 which is `mFirebaseAuth = FirebaseAuth.getInstance();

为什么我会null?除此之外,尽管我得到了null,但什么阻止了应用程序的运行?无论如何,我已经在某种程度上对待null

代码永远不会到达下一行,它只是停止获取Auth实例。

3 个答案:

答案 0 :(得分:1)

转到项目级别build.gradle并检查其外观是否完全像这样:

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

代码突然起作用,当您查看其他答案时,也会发现相同的结果。

答案 1 :(得分:0)

我对此不太确定,但我相信你的mFireBaseAuth尚未初始化。也许

我想这是因为我在firebase文档中读到了: 注意:getCurrentUser也可能返回null,因为auth对象尚未完成初始化。如果您使用听众来跟踪用户的登录状态,则无需处理此案例。

答案 2 :(得分:0)

请检查您的应用Gradle文件。请确保在底部添加以下行

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

如果缺少此行,那么您的代码将编译正常,但FirebaseAuth将无法在没有合理警告的情况下实例化/初始化。

另一种可能是Firebase控制台中未正确启用您的身份验证。请相应启用。附上截图。 enter image description here

一切顺利!