我正在使用firebase_auth和google_sign_in构建Flutter应用。
一切都运行了一段时间,并且我发布的产品上的所有现有用户都没有遇到任何问题,但是不久前,我开始收到有关新用户无法登录的报告。直到报告开始累积为止。我发现他们在标题中发现了错误。我花了很多时间调查...
对于该问题,我已经遍历了所有其他StackOverflow条目:
我已经尝试了所有解决方案:
android/app/
目录中flutter build appbundle --debug
来构建Flutter应用所以我也尝试过:
flutter build appbundle --release
对于每种组合,我都可以确保flutter clean
并将google-services.json文件替换为更新的
确认android/build.gradle
和android/app/build.gradle
是configured properly
以下是我运行的版本:
google_sign_in: ^4.0.7
firebase_auth: ^0.14.0+5
android / app / build.gradle的相关部分:
dependencies {
implementation "androidx.appcompat:appcompat:1.1.0-alpha01"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation "com.google.android.gms:play-services-auth:16.0.1"
implementation "com.google.android.gms:play-services-identity:16.0.0"
implementation "com.android.support:support-v4:28.0"
}
apply plugin: 'com.google.gms.google-services'
android / build.gradle的相关部分:
buildscript {
ext.kotlin_version = '1.2.71'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
}
Flutter Doctor输出:
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.0-rc1)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[!] Connected device
! No devices available
! Doctor found issues in 1 category.
所有测试都是使用Firebase上的Robo测试实验室在多台设备上完成的(仅查看登录是否成功,而不是测试UI)。
TLDR;
最后,我终于弄清楚了,如果我使用flutter build apk
(而不是一个appbundle)来构建apk,它就可以工作。然后我意识到问题开始的时间与Flutter开始建议我生成appbundles而不是apk的同时。
在生成应用程序包时,是否有人能够使用google_sign_in随风飘扬地登录BRAND NEW USER?(请注意,以前登录该应用程序早期版本的现有用户无需问题。)
答案 0 :(得分:0)
如果您使用内部应用程序共享来测试实际Android设备上的Flutter构建(例如我),则需要添加另一个应用程序签名证书指纹。
在Google Play控制台的左侧导航上,进入:开发者工具->内部应用共享
选择应用程序证书标签。应该看起来像这样:
Google Play - Internal App Sharing - Certificate
复制SHA1密钥并将其添加到Firebase控制台->项目设置-> [您的Android应用]-> SHA证书指纹(使用按钮添加指纹)
下载您的更新后的google-services.json 并将其更新/添加到您的项目的android / app文件夹中。
这适用于新用户和现有用户。我使用flutter build appbundle
Google并未在任何地方对此进行记录,在Flutter社区的其他地方也没有看到这种解决方案。在尝试了您所有引用的链接和其他几个链接之后,我在Google Play控制台中闲逛时遇到了这个解决方案。