Не получается адрес электронной почты facebook после успешной аутентификации в firebase db - PullRequest
0 голосов
/ 09 мая 2020

Здесь я пытаюсь войти в систему с помощью facebook, но после успешного входа в систему я хочу показать данные пользователя в profile.class, но из-за этого я не могу получить адрес электронной почты. Более того, я видел, что в некоторых решениях различные разработчики используют GraphRequest в handleFacebookToken (). Пожалуйста, помогите мне узнать, как успешно получить адрес электронной почты, а также нужно ли мне реализовать GraphRequest? Пожалуйста, помогите

private void handleFacebookToken(AccessToken accessToken) {

        AuthCredential credential = FacebookAuthProvider.getCredential(accessToken.getToken());

        mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    FirebaseUser user = mAuth.getCurrentUser();

                    String name, email;
                    name = user.getDisplayName();
                    email = user.getEmail();
                    Intent intent = new Intent(getApplicationContext(), profile.class);
                    intent.putExtra("name", name);
                    intent.putExtra("email", email);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
                    Toast.makeText(getApplicationContext(), "Login successful", Toast.LENGTH_SHORT).show();

                } else {
                    Toast.makeText(getApplicationContext(), "Authentication failed.", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

1 Ответ

0 голосов
/ 09 мая 2020

Политика конфиденциальности, причина безопасности данных, поэтому вам необходимо использовать API-интерфейс графа

API-интерфейс графа возвращает только общедоступную информацию. Подробнее о свойствах и разрешениях пользователя см. Справочник по API Graph, Пользователь .

GraphRequest request = GraphRequest.newMeRequest(
        accessToken,
        new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(
                   JSONObject json_object,
                   GraphResponse response) {
                 try {
                        String email = json_object.getString("email");
                        String id = json_object.getString("id");
                        String name = json_object.getString("name");
                        Timber.d("facebook id%s", id);
                        presenter.facebookLogin(email, id, name, loginResult.getAccessToken().getToken());

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
            }
        });
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link");
request.setParameters(parameters);
request.executeAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...