Firebase AuthUI - 从 Facebook 提供商获取额外的用户信息

Firebase AuthUI - Fetch additional User Information from Facebook Provider

我正在尝试从 Firebase AuthUI 的 Facebook 提供商获取请求的信息。

我没有找到任何获取此数据的方法。当我调试该步骤时,我可以在属性 "zzdd" 中看到请求的信息,就像 JSON 一样。

我怎样才能得到这些数据?

Request birthday and gender information from user:

new AuthUI.IdpConfig.FacebookBuilder()
  .setPermissions( Arrays.asList( "user_birthday", "user_gender" ) )
  .build() );

Fetch data from provider

mUser = FirebaseAuth.getInstance().getCurrentUser();
for( UserInfo user : mUser.getProviderData() ) { }

Debbuger - user - zzdd attribute

{"birthday":"08/05/1995","updated_time":"2018-05-04T21:28:53+0000","gender":"male",...}

Firebase AuthUI 版本:3.3.1

我找到了解决方案。

要通过 Firebase Auth 获取更多信息,您必须通过 SDK 提供商获取,例如 Facebook,代码如下:

Get data from Facebook SDK on Login Success with Firebase AuthUI:

                    GraphRequest request = GraphRequest.newMeRequest(
                        AccessToken.getCurrentAccessToken(),
                        new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted( JSONObject jsonObject, GraphResponse response ) {
                                // Application code
                                try {
                                    String birthday = jsonObject.getString( "birthday" );
                                    String gender = jsonObject.getString( "gender" );
                                } catch( JSONException e ) {
                                    e.printStackTrace();
                                }
                            }
                        } );
                Bundle parameters = new Bundle();
                parameters.putString( "fields", "birthday,gender" );
                request.setParameters( parameters );
                request.executeAsync();