-1

J'ai suivi un tutoriel pour créer une application pour la connexion en utilisant facebook et google en utilisant firebase. Le bouton "se connecter avec email" fonctionne bien, mais quand j'essaye de me connecter en utilisant google ou facebook l'application se brisé.Application bloque lors de la connexion en utilisant facebook ou compte google

Voici mon MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 

private static final int RC_SIGN_IN=0; 
FirebaseAuth auth; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    FirebaseAuth auth=FirebaseAuth.getInstance(); 

    if(auth.getCurrentUser()!=null) 
    { 
     Log.d("AUTH",auth.getCurrentUser().getEmail()); 
    } 
    else { 
     startActivityForResult(AuthUI.getInstance() 
       .createSignInIntentBuilder().setProviders(
         AuthUI.FACEBOOK_PROVIDER, 
         AuthUI.GOOGLE_PROVIDER, 
         AuthUI.EMAIL_PROVIDER 

       ).build(), RC_SIGN_IN); 
    } 

    findViewById(R.id.btnLogout).setOnClickListener(this); 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==RC_SIGN_IN) 
    { 
     if(resultCode==RESULT_OK) 
     { 
      Log.d("AUTH",auth.getCurrentUser().getEmail()); 
     } 
     else 
     { 
      Log.d("AUTH","Not authenticated"); 
     } 
    } 
} 

@Override 
public void onClick(View view) { 
    if(view.getId()==R.id.btnLogout) 
    { 
     AuthUI.getInstance().signOut(this).addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 
       Log.d("AUTH","User logged Out"); 
       finish(); 
      } 
     }); 
    } 
} 

}

build.gradle (app) fichier

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.example.ranjit.authenticate" 
     minSdkVersion 18 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     multiDexEnabled = true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 

    compile 'com.firebaseui:firebase-ui-auth:0.4.4' 
    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.google.firebase:firebase-auth:10.0.1' 
    compile 'com.google.android.gms:play-services-auth:10.0.1' 
    testCompile 'junit:junit:4.12' 
} 

apply plugin: 'com.google.gms.google-services' 

et ci-dessous est mon logcat pour l'application

08-21 03:09:24.419 23408-23408/com.example.ranjit.authenticate E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.ranjit.authenticate, PID: 23408 
                      java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { }} to activity {com.example.ranjit.authenticate/com.example.ranjit.authenticate.MainActivity}: java.lang.NullPointerException 
                       at android.app.ActivityThread.deliverResults(ActivityThread.java:3532) 
                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:3575) 
                       at android.app.ActivityThread.access$1300(ActivityThread.java:139) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1341) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:149) 
                       at android.app.ActivityThread.main(ActivityThread.java:5257) 
                       at java.lang.reflect.Method.invokeNative(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:515) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
                       at dalvik.system.NativeStart.main(Native Method) 
                       Caused by: java.lang.NullPointerException 
                       at com.example.ranjit.authenticate.MainActivity.onActivityResult(MainActivity.java:50) 
                       at android.app.Activity.dispatchActivityResult(Activity.java:5603) 
                       at android.app.ActivityThread.deliverResults(ActivityThread.java:3528) 
                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:3575)  
                       at android.app.ActivityThread.access$1300(ActivityThread.java:139)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1341)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:149)  
                       at android.app.ActivityThread.main(ActivityThread.java:5257)  
                       at java.lang.reflect.Method.invokeNative(Native Method)  
                       at java.lang.reflect.Method.invoke(Method.java:515)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)  
                       at dalvik.system.NativeStart.main(Native Method)  

08 -21 03:09:30. 779 23408-23421/com.example.ranjit.authenticate W/DynamiteModule: Classe de descripteur de module local pour com.google.firebase.auth introuvable.

Répondre

1

Vous avez une exception de pointeur null dans la méthode. Ce est probablement la façon dont vous accédez auth

 Log.d("AUTH",auth.getCurrentUser().getEmail()