Android FirebaseUI登录,发布密钥出现Google错误
我在使用FirebaseUI的身份验证时尝试使用Google登录时遇到错误。所有这些在开发中都能很好地工作,但是当我使用我的上传密钥签署我的包,然后在设备上运行它时,它失败了 我看了相关的问题,答案没有帮助。正如你在下面看到的,我尝试了他们的建议 我所尝试的:Android FirebaseUI登录,发布密钥出现Google错误,android,firebase,firebase-authentication,google-signin,firebaseui,Android,Firebase,Firebase Authentication,Google Signin,Firebaseui,我在使用FirebaseUI的身份验证时尝试使用Google登录时遇到错误。所有这些在开发中都能很好地工作,但是当我使用我的上传密钥签署我的包,然后在设备上运行它时,它失败了 我看了相关的问题,答案没有帮助。正如你在下面看到的,我尝试了他们的建议 我所尝试的: 在Firebase控制台的项目设置中添加SHA1指纹,用于调试、发布(上载)和Google播放键 在console.developers.google.com上,为3个键中的每个键创建了Android的OAuth客户端 仍然在conso
- 在Firebase控制台的项目设置中添加SHA1指纹,用于调试、发布(上载)和Google播放键
- 在console.developers.google.com上,为3个键中的每个键创建了Android的OAuth客户端
- 仍然在console.developers.google.com创建了一个新的Web客户端,然后我将客户端ID和密码放入Firebase的身份验证/google登录方法的Web SDK配置中
- 尝试了所有步骤、和
- 仔细检查我的构建是否由正确的密钥(上载/部署密钥)签名
- 确保我的google-services.json是最新的,所有指纹都存在
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.google-services'
android {
signingConfigs {
release {
storeFile file('myKeystore')
storePassword 'myPassword'
keyAlias 'upload'
keyPassword 'myPassword'
}
}
compileSdkVersion 29
defaultConfig {
applicationId "com.######.app"
minSdkVersion 28
targetSdkVersion 29
versionCode 24
versionName "Test version 1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()
]
}
}
}
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
debuggable true
signingConfig signingConfigs.debug
}
}
packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}
sourceSets {
main {
res {
srcDirs 'src/main/res', 'src/main/res_birds'
}
}
}
}
dependencies {
// Jar libs
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// Support libs
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.1.0'
// Supernova UI Toolkit
implementation 'io.supernova:android-ui-toolkit:1.2.0'
// Play Services
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-auth:18.0.0'
// Page Control
implementation 'com.romandanylyk:pageindicatorview:1.0.0'
// Unit tests dependencies
implementation 'com.google.firebase:firebase-auth:19.3.1'
testImplementation 'junit:junit:4.13'
// Integration tests dependencies
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// Room components
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
kapt "androidx.room:room-compiler:$rootProject.roomVersion"
androidTestImplementation "androidx.room:room-testing:$rootProject.roomVersion"
// optional - Kotlin Extensions and Coroutines support for Room
implementation "androidx.room:room-ktx:$rootProject.roomVersion"
// Lifecycle components
kapt "androidx.lifecycle:lifecycle-compiler:$rootProject.archLifecycleVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$rootProject.archLifecycleVersion"
// Kotlin components
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$rootProject.coroutines"
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$rootProject.coroutines"
// Material design
implementation "com.google.android.material:material:$rootProject.materialVersion"
// Testing
testImplementation 'junit:junit:4.13'
androidTestImplementation "androidx.arch.core:core-testing:$rootProject.coreTestingVersion"
// Navigation
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.2.2'
// Stfalcon ImageViewer
implementation 'com.github.stfalcon:stfalcon-imageviewer:1.0.1'
// [START gradle_firebase_ui_auth]
implementation "com.firebaseui:firebase-ui-auth:6.2.1"
//Firebase
implementation 'com.google.firebase:firebase-analytics:17.4.3'
implementation 'com.google.firebase:firebase-core:17.4.3'
implementation 'com.google.firebase:firebase-firestore-ktx:21.4.3'
implementation "com.google.firebase:firebase-auth-ktx:19.3.1"
// Required only if Facebook login support is required
implementation 'com.facebook.android:facebook-android-sdk:7.0.0'
// [END gradle_firebase_ui_auth]
}
Firebase测试实验室设备生成的日志摘录:
06-21 12:11:29.915: E/AuthUI(14514): A sign-in error occurred.
06-21 12:11:29.915: E/AuthUI(14514): com.firebase.ui.auth.FirebaseUiException: Code: 10, message: 10:
06-21 12:11:29.915: E/AuthUI(14514): at com.firebase.ui.auth.data.remote.GoogleSignInHandler.onActivityResult(GoogleSignInHandler.java:112)
06-21 12:11:29.915: E/AuthUI(14514): at com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity.onActivityResult(AuthMethodPickerActivity.java:361)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.Activity.dispatchActivityResult(Activity.java:7462)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.ActivityThread.deliverResults(ActivityThread.java:4391)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4440)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
06-21 12:11:29.915: E/AuthUI(14514): at android.os.Handler.dispatchMessage(Handler.java:106)
06-21 12:11:29.915: E/AuthUI(14514): at android.os.Looper.loop(Looper.java:193)
06-21 12:11:29.915: E/AuthUI(14514): at android.app.ActivityThread.main(ActivityThread.java:6718)
06-21 12:11:29.915: E/AuthUI(14514): at java.lang.reflect.Method.invoke(Native Method)
06-21 12:11:29.915: E/AuthUI(14514): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-21 12:11:29.915: E/AuthUI(14514): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
06-21 12:11:29.916: D/LifecycleMonitor(14514): Lifecycle status change: com.firebase.ui.auth.KickoffActivity@f99b9c3 in: RESUMED
06-21 12:11:29.940: I/GoogleInputMethod(1463): onFinishInput() : Dummy InputConnection bound
06-21 12:11:29.940: I/GoogleInputMethod(1463): onStartInput() : Dummy InputConnection bound
06-21 12:11:29.945: I/Icing(10330): Indexing done com.google.android.inputmethod.latin-internal.3p:StickerPack [CONTEXT service_id=21 ]
06-21 12:11:29.946: I/Icing(10330): Indexing com.google.android.inputmethod.latin-internal.3p:Sticker from com.google.android.inputmethod.latin [CONTEXT service_id=21 ]
06-21 12:11:29.948: D/LifecycleMonitor(14514): Lifecycle status change: com.firebase.ui.auth.KickoffActivity@f99b9c3 in: PAUSED
06-21 12:11:29.962: I/FirebaseUIActivity(14514): Request Code: 123, Result Code: 0
06-21 12:11:29.962: E/FirebaseUIActivity(14514): Sign in failed with response error code: 4, and message: Code: 10, message: 10:
下面的屏幕截图是我在Firebase控制台上的SHA-1指纹。它们的定义如下:
- 以A7结尾:调试
- 以68结尾:发布(apk)
- 以66结尾:商店(游戏商店)
{
"project_info": {
"project_number": "*******",
"firebase_url": "**********",
"project_id": "************",
"storage_bucket": "************"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:77*******:android:*******1e7",
"android_client_info": {
"package_name": "com.f***********.app"
}
},
"oauth_client": [
{
"client_id": "77************-2u******************.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.f***********.app",
"certificate_hash": "ea#####################################68"
}
},
{
"client_id": "7****************-do**************.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.f***********.app",
"certificate_hash": "3e#####################################a7"
}
},
{
"client_id": "7**************-k8**************.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.f***********.app",
"certificate_hash": "d0#####################################66"
}
},
{
"client_id": "7**************-sf**************.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AI**************_GQ"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "7**************-sf**************.googleusercontent.com",
"client_type": 3
},
{
"client_id": "7*********-3**************.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "com.f***********.app",
"app_store_id": "********"
}
}
]
}
}
}
],
"configuration_version": "1"
}
如果您有任何下一步的想法,我们将不胜感激。所以。。。事实证明,可能需要4(四)个签名密钥。。。 第四个是通过GooglePlay进行内部应用程序共享(我正在使用)。要查找此密钥,您需要导航到Google Play console,如下所示:
将该键添加到Firebase控制台设置中,将新的google-services.json下载到项目中并运行。。。。事实证明,可能需要4(四)个签名密钥。。。 第四个是通过GooglePlay进行内部应用程序共享(我正在使用)。要查找此密钥,您需要导航到Google Play console,如下所示:
将该键添加到Firebase控制台设置中,将新的google-services.json下载到项目中并运行。我刚刚将此问题标记为已结束,因为它已经有了答案。但是,如果您对使用Google的clean Firebase身份验证感兴趣,您可以对此进行检查。@AlexMamo,我尝试了链接问题中的所有建议,但没有解决我的问题。@AlexMamo您的回答提到添加了我做过的三个密钥(并在我的问题中提到)。您在这里还提到:重新下载我的google-services.json。我也这么做了。投票赞成重新开始,因为你提到的两个问题都没有我的答案。请帮助重新打开。好的,我重新打开了问题,但请注意,
code:10,message:10
只有在这三个键中的一个或多个没有正确添加时才会生成。很好,Stephan;)我刚刚将这个问题标记为已结束,因为它已经有了答案。但是,如果您对使用Google的clean Firebase身份验证感兴趣,您可以对此进行检查。@AlexMamo,我尝试了链接问题中的所有建议,但没有解决我的问题。@AlexMamo您的回答提到添加了我做过的三个密钥(并在我的问题中提到)。您在这里还提到:重新下载我的google-services.json。我也这么做了。投票赞成重新开始,因为你提到的两个问题都没有我的答案。请帮助重新打开。好的,我重新打开了问题,但请注意,code:10,message:10
只有在这三个键中的一个或多个没有正确添加时才会生成。很好,Stephan;)谢谢你,斯蒂芬!这是一个非常重要的部分,我相信大多数开发人员都忽视了这一点。我只是花了一天的大部分时间来调试这个。呸!我很高兴它是有用的@Sriram。我花了几个星期;)谢谢你,斯蒂芬!这是一个非常重要的部分,我相信大多数开发人员都忽视了这一点。我只是花了一天的大部分时间来调试这个。呸!我很高兴它是有用的@Sriram。我花了几个星期;)