Firebase Auth Ui Google 登录“开发者错误”
Posted
技术标签:
【中文标题】Firebase Auth Ui Google 登录“开发者错误”【英文标题】:Firebase Auth Ui Google Sign In "Developer Error" 【发布时间】:2018-04-07 06:44:39 【问题描述】:我有一个使用 firebase 和 firebase auth ui 库的项目。问题是我无法使用 Google 登录进行登录,当我尝试加载一两秒时,它只显示一条吐司消息,上面写着“开发人员错误”。我可以用电子邮件和密码登录就好了。这只是签名apks的问题,当我调试谷歌时,登录工作正常。
在我的 proguard-rules.pro 中,我将 minifyEnabled 设置为 false。
我已将 SHA-1 添加到我的 firebase 项目并下载了正确的 json 文件。
来自应用级别 build.gradle 的依赖块
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
exclude group: 'com.android.support', module: 'support-annotations'
)
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:design:26.0.2'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:26.0.2'
compile 'com.android.support:cardview-v7:26.0.2'
compile 'com.google.firebase:firebase-database:11.4.2'
compile 'com.google.firebase:firebase-auth:11.4.2'
compile 'com.firebaseui:firebase-ui-auth:3.1.0'
testCompile 'junit:junit:4.12'
apply plugin: 'com.google.gms.google-services'
这是我的 AuthStateListener
mAuthStateListener = new FirebaseAuth.AuthStateListener()
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth)
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null)
signedInInitialized();
else
signedOutCleanUp();
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setTheme(R.style.FirebaseSignInTheme)
.setIsSmartLockEnabled(false)
.setAvailableProviders(
Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build()))
.build(),
RC_SIGN_IN);
;
logcat 没有显示任何错误或任何东西。发生这种情况时我会发布 logcat,但我不知道如何从已签名的 apk 中获取 logcat,因为这只发生在签署 apk 时。
我已经尝试了好几天,但似乎没有成功。
谢谢
【问题讨论】:
【参考方案1】:Google 变得越来越丑陋,他们让简单的事情变得复杂。问题是第三把钥匙,
1、调试键
2、释放键
3、Google Play 应用签名密钥
您需要三个密钥才能确定一个 Google 登录。
Facebook 也需要三个键吗?也许有一天 google 需要 30 个键。
【讨论】:
【参考方案2】:最简单的方法是使用 android studio: 工具 -> Firebase -> 身份验证 -> 单击小播放按钮,然后按第一个选项中的连接按钮。 Android Studio 会为您完成,生成 SHA-1 密钥并将其添加到您的项目中。
【讨论】:
【参考方案3】:你已经添加了两个键
您的 android 调试密钥 SHA-1
您对发布密钥 SHA-1 的签名
【讨论】:
【参考方案4】:您已在控制台中添加了调试密钥的签名。但是释放密钥的签名是不同的。在 Firebase 控制台中添加您用于签署 apk 的发布密钥的签名。
首先使用以下命令生成密钥:
keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME
然后复制 SHA-1 校验和并转到:
Firebase 控制台 > 您的项目 > 应用设置 > 添加指纹
【讨论】:
很高兴我能帮上忙。 :) 我已经添加了 Debug 和 Release SHA1 但仍然无法正常工作。但是,它可以在 Debug Mod 中使用。 这里不工作。当我为 Firebase-UI 使用 google-sign-in 时,我的应用程序中出现“开发人员错误”和“发生未知错误”以上是关于Firebase Auth Ui Google 登录“开发者错误”的主要内容,如果未能解决你的问题,请参考以下文章
com.firebase.ui.auth.FirebaseUiException:提供程序错误 - Firebase-UI 身份验证 Facebook 登录不起作用
由于 12500(SIGN_IN_FAILED) 错误代码,使用 Google 登录 Firebase UI 失败