Firebase AuthUI - 从Facebook提供商处获取其他用户信息

时间:2018-05-19 18:41:24

标签: android firebase login firebase-authentication facebook-android-sdk

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

我没有找到任何获取此数据的方法。当我调试该步骤时,我可以在属性“zzdd”中看到请求的信息为JSON之类的。

如何获取此数据?

  

向用户请求生日和性别信息:

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

从提供商

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

Debbuger - user - zzdd属性

     

{的 “生日”: “1995年8月5日”下, “updated_time”: “2018-05-04T21:28:53 + 0000”,的 “性别”:“雄“下,...}

Firebase AuthUI版本:3.3.1

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

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

  

使用Firebase AuthUI从登录成功获取Facebook SDK中的数据:

                    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();