0

J'ai suivi toutes les étapes de la documentation, pour l'enregistrement via Facebook Mais lors de l'enregistrement je reçois ceci:Pourquoi enregistrer un utilisateur avec Facebook sur Firebase n'enregistre pas l'e-mail? - Android

enter image description here

L'email est comme (-) null

c'est mon Code:

 private void initLoginWithFacebook(){ 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    callbackManager = CallbackManager.Factory.create(); 

    accessTokenTracker = new AccessTokenTracker() { 
     @Override 
     protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) { 

     } 
    }; 


    loginButton.setReadPermissions("email", "public_profile"); 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      handleFacebookAccessToken(loginResult.getAccessToken()); 



     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 

     } 
    }); 


    accessTokenTracker.startTracking(); 

    mAccessToken = AccessToken.getCurrentAccessToken(); 
    if(mAccessToken != null){ 
     Intent intent1 = new Intent(RegisterActivity.this, NavActivity.class); 
     intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     startActivity(intent1); 

    } 


} 


private void handleFacebookAccessToken(AccessToken token) { 
    Log.d(TAG, "handleFacebookAccessToken:" + token); 


    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken()); 
    auth.signInWithCredential(credential) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful()); 


        if (!task.isSuccessful()) { 
         Log.w(TAG, "signInWithCredential", task.getException()); 
         TastyToast.makeText(RegisterActivity.this, "Authentication failed.", 
           TastyToast.LENGTH_SHORT, TastyToast.ERROR).show(); 
        } 

       } 
      }); 
} 

jusqu'à présent, je n'ai pas trouvé un moyen de résoudre ce problème et je ne sais pas comment le faire

+0

Vérifiez simplement vos paramètres d'authentification dans la console Firebase d'abord – Piyush

+0

Les paramètres sont activés @Piyush – Dskato

Répondre

1

Cela se produit parce que Facebook permet aux utilisateurs de s'inscrire only avec leur numéro de téléphone et non avec le email address. Il y a beaucoup d'utilisateurs qui ne complètent pas leur profil en ajoutant leur adresse email et c'est la raison pour laquelle vous n'obtenez rien là.

Vous direz, d'accord, mais pourquoi je ne reçois pas le numéro de téléphone au lieu de l'adresse e-mail? Cela se produit en raison des politiques de Facebook. Ils ne rendent pas le numéro de téléphone de l'utilisateur public. Et pour autant que je sache, il y a maintenant api pour faire ça.

Espérons que ça aide.

+0

Thaks! ça aide. – Dskato