使用可用的在线文档和此视频:https://www.youtube.com/watch?v=0ucjYG_JrEE,我尝试开始应用新的UI Auth库。邮件登录效果很好,Google不会登录:它会发出警告,用户界面会一直显示"正在加载..."对话框。
final FirebaseAuth auth = FirebaseAuth.getInstance();
auth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser usr = firebaseAuth.getCurrentUser();
if (usr != null){
Log.d( TAG, "User signed in correctly: " + usr );
auth.removeAuthStateListener( this );
} else {
//signed out
Log.d( TAG, "User is not signed in" );
auth.removeAuthStateListener( this );
startActivityForResult( AuthUI.getInstance().createSignInIntentBuilder()
.setTheme( R.style.AppBaseTheme )
.setProviders(
AuthUI.EMAIL_PROVIDER,
AuthUI.GOOGLE_PROVIDER
).build(), RC_SIGN_IN );
}
}
});
输出:
05-21 13:49:33.595 25005-25005/com.xxx.xxx W/AuthMethodPicker: Firebase login unsuccessful
更多日志输出会有所帮助。请注意,这只发生在导入的Firebase项目上,而不是新创建的Firebase项目上。
更新:刚在控制台中发现了这个:
05-22 14:29:58.178 10075-10310/? V/BaseAuthAsyncOperation: access token request successful
05-22 14:29:58.179 10075-10310/? V/AuthAccountOperation: id token is requested.
05-22 14:29:58.758 10075-10310/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: INVALID_AUDIENCE
05-22 14:29:58.758 10075-10310/? D/AuthAccountOperation: id token request failed.
答案 0 :(得分:4)
刚刚找到了这个问题的原因:我的应用程序使用了一个意外的(错误的)debug.keystore来签署调试APK ...在我的构建中指向正确的debug.keystore之后,一切都按预期工作!
(感谢此帖:Android Studio - debug keystore)
P.S。感谢Google / Firebase团队提供的UI Auth解决方案:这是一项伟大的改进!
答案 1 :(得分:1)
对于在发布版本中获得此功能的任何人。确保Firebase项目设置中有正确的SHA1指纹。
请注意,调试和发布密钥库的指纹不同。
以下是获取正确指纹的方法:https://developers.google.com/android/guides/client-auth