Firebase AuthUI - получение дополнительной информации о пользователе от провайдера Facebook - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь получить запрошенную информацию у провайдера Facebook Firebase AuthUI.

Я не нашел способа получить эти данные.Когда я отлаживаю этот шаг, я могу видеть запрошенную информацию в атрибуте "zzdd" как JSON.

Как я могу получить эти данные?

Запросить информацию о дне рождения и поле отпользователь:

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

Получение данных от провайдера

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

Debbuger - пользователь - атрибут zzdd

{ "день рождения": "08.05.1995" , "updated_time": "2018-05-04T21: 28: 53 + 0000", "пол": "мужчина", ...}

Firebase AuthUI Версия: 3.3.1

1 Ответ

0 голосов
/ 20 мая 2018

Я нашел решение.

Чтобы получить дополнительную информацию от Firebase Auth, вы должны получить ее от поставщиков SDK, например, Facebook, как показано ниже:

Получить данные из Facebook SDK при входе в системуУспех с 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();
...