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

3
我是一名有用的助手,可以为您翻译文本。

所以我正在学习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”,但是仍然阻止应用程序运行。代码从未达到下一行,它只停在获取Auth实例处。

你是否已经将 google_services.json 文件复制到 /app 目录下了? - Jay
@DinukaJayasuriya 是的,我试过了。我尝试将其删除/移动到其他地方,但构建失败了,所以我认为这一切都很好。 - Phantomazi
也许您可以展示一下异常的完整堆栈跟踪? - Doug Stevenson
@DougStevenson,好消息是问题已经解决。方法是我打开了AS助手,通过Firebase连接过程操作。当助手重新应用Gradle文件中的依赖项并同步后,问题得到解决。问题是在此之前我尝试重新应用它们和重新同步大约10次。。也许这是AS中的一个bug?现在对于这个SO问题有什么建议吗? :( - Phantomazi
不确定在这里该说什么。也许你的项目只是处于糟糕的状态。:-/ 我没有使用过这个助手,而且它很新,所以可能存在问题。 - Doug Stevenson
魔鬼是 maven { url "https://maven.google.com" } - Garvit Jain
3个回答

1

前往项目级别的build.gradle文件,检查它是否与以下内容完全一致:

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

当代码突然奏效时,当你查看其他答案时,你会发现同样也是如此。


0

我不是很确定,但我认为你的mFireBaseAuth尚未初始化。也许。

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


0
请检查您的应用程序Gradle文件。并确保以下行已添加到底部。
apply plugin: 'com.google.gms.google-services'

如果缺少此行,则您的代码将编译成功,但FirebaseAuth将在没有合理警告的情况下无法实例化/初始化。
另一个可能性是您的身份验证在Firebase控制台中未正确启用。请相应地启用。附带截图。 enter image description here 祝一切顺利!

嗨,Abhishek,我在Module:app文件中设置了这个,但我仍然得到一个空对象 - google_services.json文件也已经放置好了。 - kilokahn
@kilokahn - 你好,你可以发布一个模块:应用程序的截图,展示你放置此语句的位置吗?位置也很重要。 - Abhishek
@kilokahn - 我已经更新了我的答案,并附上了截图。请在您的Firebase控制台中检查至少一个身份验证方法是否“启用”。根据您的代码,它应该是“电子邮件/密码”或“电话”,因为其他方法需要对您的模块:app gradle文件进行更多添加。 - Abhishek
明白了。它已启用,但我在清单中没有添加带有android:name的<activity>。null是因为无法加载该活动。非常感谢您的帮助! :) - kilokahn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接