Firebase Google登录无效(Android)

时间:2017-02-20 23:06:35

标签: android firebase firebase-authentication

所以我最初尝试将Firebase身份验证Google登录添加到我的应用中。如果没有成功,我决定尝试使用Firebase的官方Quickstart应用程序。我下载了它,将其导入Android Studio并按照他们的指示进行操作。它仍然无法运作。

我会点击“登录”按钮,会出现一个对话框,我会选择我的个人资料,然后什么也没有。调试,我发现onActivityResult result.isSuccess()方法返回false,我不知道从哪里开始。

经常提供的解决方案清单:

  • 我已将Firebase JSON文件添加到快速入门应用程序中(创建新项目后)

  • 我提供了SHA-1代码

  • Firebase Auth / Google Repo / Everything是最新版本

  • 我点击了Firebase控制台中的“启用谷歌登录”切换按钮

设备详细信息:

  • Android设备:Samsung-SM-G530A

  • Android操作系统版本:5.1.1

  • Google Play服务版:10.2.0

  • Firebase / Play Services SDK版本:10.2.0

我的代码是他们的,我没有修改任何东西。找到here

编辑:所以,我让他们的快速启动工作。我认为这是我的firebase上的SHA-1代码的问题。现在虽然我的应用程序中出现了新问题...每当我打电话给FirebaseAuth时,我都会收到如下错误:

error:cannot access zzbql
class file for com.google.android.gms.internal.zzbql not found

Error:Execution failed for task ':app:compileFacebookDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

编辑2:好的,现在一切都搞砸了!在任何xml / layout文件中,我看到有关未实例化的类的各种错误。

java.lang.NoSuchFieldError: AppCompatTextHelper
at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:58)
at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:40)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:72)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:150)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:193)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:333)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:152)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:222)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$70(RenderTask.java:659)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

3 个答案:

答案 0 :(得分:1)

 mGoogleApiClient = new GoogleApiClient.Builder(this) 
.enableAutoManage(this /* FragmentActivity /, this / OnConnectionFailedListener*/)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
.build();

在上面一行代码的末尾添加mGoogleApiClient.connect();

答案 1 :(得分:1)

好的,大家都感谢你的帮助。

原始问题的解决方案是我的SHA-1指纹在Firebase中不正确。

我的编辑解决方案是将com.google.android.gms的版本从10.2.0减少到10.0.1

很奇怪,但它现在有用了!

答案 2 :(得分:0)

此处的建议方向是获取有关该问题的更多调试信息。可能使用:

FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBU‌​G)

然后查看Android studio中的console / logcat输出。查看here和/或here了解详情。

您可能已经看过网上like this的一些答案,但如果没有关于错误的更多信息,则很难知道它们是否适用于您的情况。