Пользователи, прошедшие проверку Facebook, не могут получить доступ к базе данных - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть приложение, которое использовало Google SignIn для аутентификации, и оно работает нормально.Я реализовал Facebook Войти, и он входит в систему правильно.Это даже отображается в моей консоли разработчиков Facebook, и я могу получить имя пользователя, адрес электронной почты, изображение после входа в систему, но вошедший в систему пользователь не может получить доступ к базе данных Firebase.Аутентификация Facebook включена в консоли Firebase, но аутентифицированный пользователь не отображается на вкладке «Прошедшие проверку» в консоли Firebase.Кто-нибудь может мне помочь?

Код

callbackManager = CallbackManager.Factory.create();
    mFacebookLoginButton.setReadPermissions(Arrays.asList("email"));
    mFacebookLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d("Please...", "1");
            GraphRequest request = GraphRequest.newMeRequest(
                    loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {
                            FirebaseAuth.getInstance().getCurrentUser();
                            String f = Profile.getCurrentProfile().getFirstName();
                            String l = Profile.getCurrentProfile().getLastName();
                            String mName;

                            if (!f.equals(l))
                                mName = Profile.getCurrentProfile().getFirstName()+" "+Profile.getCurrentProfile().getLastName();
                            else
                                mName = Profile.getCurrentProfile().getFirstName();

                            try {
                                String mEmail = object.getString("email");

                                    addData(null, convert(mName), convert(mEmail));

                                    Toast.makeText(getApplicationContext(), "Successfully Signed In", Toast.LENGTH_SHORT).show();
                                }

                            } catch (JSONException e) {
                                Log.d("Please...", e.getMessage());
                            }
                        }
                    });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,name,email,gender,birthday");
            request.setParameters(parameters);
            request.executeAsync();
        }
        @Override
        public void onCancel() {
            Toast.makeText(getApplicationContext(),"Something Went Wrong",Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onError(FacebookException exception) {
            Toast.makeText(getApplicationContext(),exception.getMessage(),Toast.LENGTH_SHORT).show();
        }
    });

В addData ()

        Log.d("PROBLEM", "IN");
        mDatabaseReference.child("e").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.d("PROBLEM", "INNN");
..............
..............
.........

Журнал показывает до "IN", что означает, что он не может получить доступ к базе данных, но когда я вхожу из Googleэтой проблемы не существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...