3

使用可用的在线文档和此视频:https ://www.youtube.com/watch?v=0ucjYG_JrEE ,我正在尝试开始应用新的 UI Auth 库。邮件登录效果很好,谷歌登录不行:它发出警告,用户界面一直显示“正在加载...”对话框。

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.
4

2 回答 2

4

刚刚找到了这个问题的原因:我的应用程序使用了一个意外的(错误的)debug.keystore 来签署调试 APK ......在我的构建中指向正确的 debug.keystore 之后,一切都按预期工作!

(感谢这个线程找到答案:Android Studio - 调试密钥库

Ps 感谢 Google/Firebase 团队提供 UI Auth 解决方案:这是一个很大的改进!

于 2016-05-22T13:04:55.523 回答
1

对于任何在发布版本中获得此信息的人。确保您的 Firebase 项目设置中有正确的 SHA1 指纹。

请注意,调试和发布密钥库具有不同的指纹。

以下是获取正确指纹的方法:https ://developers.google.com/android/guides/client-auth

于 2016-08-15T09:51:28.463 回答