【问题标题】:Firebase AUTH - Integration in AndroidFirebase AUTH - 在 Android 中的集成
【发布时间】:2018-07-17 09:43:17
【问题描述】:

我花了几个小时(如果不是几天)阅读并试图让这个东西工作。我希望能够在我的应用程序上对用户进行身份验证(并让他们注册)。除其他外,我使用 Android Studio 中提供的 Firebase 控制台来设置应用程序(因此它已注册并链接,我的 google-services.json 确实在 app 文件夹中)。

我一直在关注的资源(它们都提供了不同的代码 sn-ps,这非常令人困惑):

Firebase 控制台中应用程序“登录方法”设置的屏幕截图(是的,我想集成这 3 个选项):

我的

当我测试“Google 登录按钮”时,在选择我的个人资料后,在我唯一的半工作 Activity(主要基于他的“快速启动”资源的那个)中测试“Google 登录按钮”时的 Logcat:

07-16 21:15:39.367 299-987/? E/FastThread: did not receive expected priority boost
07-16 21:15:40.350 842-1252/? E/WifiStateMachine: calculateWifiScore() report new score 56
07-16 21:15:42.892 842-1252/? E/WifiStateMachine: WifiStateMachine CMD_START_SCAN source -2 txSuccessRate=0.05 rxSuccessRate=0.06 targetRoamBSSID=any RSSI=-66
    startDelayedScan send -> 62 milli 20000
07-16 21:15:42.893 842-1252/? E/WifiStateMachine: WifiStateMachine CMD_START_SCAN with age=100016 interval=341718 maxinterval=300000
    WifiStateMachine CMD_START_SCAN full=false
07-16 21:15:43.370 299-987/? E/FastThread: did not receive expected priority boost
07-16 21:15:43.610 11462-11462/? W/AccountChipsFragment: Recording consent failed.
07-16 21:15:43.641 1701-1701/? W/ChimeraUtils: Non Chimera context
07-16 21:15:43.652 260-260/? W/SurfaceFlinger: couldn't log to binary event log: overflow.
07-16 21:15:43.745 1701-6139/? W/Auth: [GetToken] GetToken failed with status code: UNREGISTERED_ON_API_CONSOLE
07-16 21:15:43.746 9806-10025/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
07-16 21:15:43.791 11462-11462/? W/AutoManageHelper: Unresolved error while connecting client. Stopping auto-manage.
07-16 21:15:43.862 8178-8178/com.example.payne.simpletestapp W/GoogleActivity: Google sign in failed
    com.google.android.gms.common.api.ApiException: 10: 
        at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
        at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
        at com.example.payne.simpletestapp.Authentification.FirebaseActivity.onActivityResult(FirebaseActivity.java:102)
        at android.app.Activity.dispatchActivityResult(Activity.java:6218)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3655)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3702)
        at android.app.ActivityThread.access$1300(ActivityThread.java:155)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5343)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
07-16 21:15:52.451 842-1252/? E/WifiStateMachine: calculateWifiScore() report new score 60
07-16 21:15:55.480 842-1252/? E/WifiStateMachine: calculateWifiScore() report new score 56

我的build.gradle

dependencies {
//...
    api 'com.google.firebase:firebase-auth:16.0.2'
    implementation 'com.firebaseui:firebase-ui-auth:4.1.0'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
//...
}
apply plugin: 'com.google.gms.google-services'

部分其他build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

注意:升级到classpath 'com.google.gms:google-services:4.0.2' 在按下“Google 登录按钮”并选择我的帐户后,我会看到以下 Logcat:

07-16 21:26:09.488 13118-13118/com.example.payne.simpletestapp W/GoogleActivity: Google sign in failed
    com.google.android.gms.common.api.ApiException: 10: 
        at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
        at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
        at com.example.payne.simpletestapp.Authentification.FirebaseActivity.onActivityResult(FirebaseActivity.java:102)
        at android.app.Activity.dispatchActivityResult(Activity.java:6218)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3655)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3702)
        at android.app.ActivityThread.access$1300(ActivityThread.java:155)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5343)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

这有点令人沮丧。我希望你们能提供帮助。如果需要,我可以提供更多代码...:/

我很惊讶没有简单的方法来复制粘贴一堆代码并让它运行。甚至设置 Activity 的 UI 也是一个过程。我似乎无法从例如“FirebaseUI-Android”存储库中找到我想要的特定部分。

【问题讨论】:

    标签: android firebase firebase-authentication


    【解决方案1】:

    我找到了一些与您的问题相关的答案。我不确定它是否有帮助,但我猜你可能会错过将 SHA-1 添加到你的 firebase 控制台。 检查此答案以获取更多详细信息。已经有人解释过了。 Google sign in failed com.google.android.gms.common.api.ApiException: 10:

    【讨论】:

    • 这并不完全是我所有问题的答案,但不知何故让我找到了正确的答案!尝试通过 Android Studio 再次(第二次)将我的应用连接到 Firebase 重新生成了一个 SHA1 密钥(或重新链接它?)。这是修复的第一部分。其次,该错误讲述了我如何缺少“身份工具包 API”的激活,并为我提供了一个链接,该链接将我带到了 Google API 网站。启用此 API 解决了问题!现在我仍然坚持使用丑陋的 UI,并且只集成了 3 种所需方法中的 Google,但这是一个开始!泰!
    • @payne 很高兴听到问题已解决。 Firebase 应该改进他们的文档和代码 sn-ps。有时,我发现有点困难和困惑。这些文档似乎只适合专家和经验丰富的人,但似乎不太适合新手。
    • 谷歌认证和用户名/密码有很大区别吗?这是我要集成的下一个。
    • 对不起,我没有做太多工作。但是对于用户名/密码,你需要了解规则配置。
    • 我已经成功地正确集成了 U/P(或者至少,我相信如此)。随时为newer questions I've got 提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多