2016-06-16 15 views
0

Ich versuche, mit dem Facebook-Profil mit Firebase Authentifizierung, zu singen in, aber ich habe den Fehler, den Code ausgeführt wird:Android Firebase macht Authentifizierung

java.lang.IllegalStateException: FirebaseApp mit dem Namen [STANDARD] existiert nicht .

Hier ist mein Code. Kann mir jemand helfen, dieses Problem zu lösen?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    checkFullscreen(); 
    setContentView(R.layout.activity_sign_in); 
    callbackManager = CallbackManager.Factory.create(); 

    mAuth = FirebaseAuth.getInstance(); 

    facebookSignIn = (Button) findViewById(R.id.facebook_sing_in); 
    facebookSignIn.setOnClickListener(this); 

} 



@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.facebook_sing_in: 
     { 
      LoginManager.getInstance().registerCallback(callbackManager, 
        new FacebookCallback<LoginResult>() { 
         @Override 
         public void onSuccess(LoginResult loginResult) { 
          handleFacebookToken(loginResult.getAccessToken()); 
          } 

         @Override 
         public void onCancel() { 
          // App code 
         } 

         @Override 
         public void onError(FacebookException exception) { 
          // App code 
         } 
        }); 
      LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile","email")); 

      break; 
     } 
    } 

} 

private void handleFacebookToken(AccessToken token) { 
    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken()); 
    mAuth.signInWithCredential(credential) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 

        } 



      }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

Antwort

0

Diese Facebook-Login funktionieren sollte Ihr Code Firebase

LoginManager mLoginManager; 

//Firebase Variables 
private FirebaseAuth mAuth; 
private FirebaseAuth.AuthStateListener mAuthStateListener; 

private CallbackManager mCallbackManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 

mAuth = FirebaseAuth.getInstance(); 

    mAuthStateListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      FirebaseUser user = firebaseAuth.getCurrentUser(); 
      updateUI(user); 
     } 
    }; 

    mCallbackManager = CallbackManager.Factory.create(); 
    btnFacebookSignIn = (LoginButton) findViewById(R.id.button_facebook_signin); 
    btnFacebookSignIn.setReadPermissions("email","public_profile"); 
    btnFacebookSignIn.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      handleFacebookAccessToken(loginResult.getAccessToken()); 
     } 

     @Override 
     public void onCancel() { 
     } 

     @Override 
     public void onError(FacebookException error) { 
     } 
    }); 

// [START onactivityresult] 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    mCallbackManager.onActivityResult(requestCode, resultCode, data); 
} 

private void handleFacebookAccessToken(AccessToken token) { 
    // ... 
    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken()); 
    mAuth.signInWithCredential(credential) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 

        // If sign in fails, display a message to the user. If sign in succeeds 
        // the auth state listener will be notified and logic to handle the 
        // signed in user can be handled in the listener. 
        if (!task.isSuccessful()) { 
         Toast.makeText(LoginActivity.this, "Authentication failed.", 
           Toast.LENGTH_SHORT).show(); 
        } 

        // ... 
       } 
      }); 
} 

    private void updateUI(FirebaseUser user) { 
    if (user != null) { 

    } 
} 
} 

Schreiben mit für, wenn der Benutzer angemeldet ist, innerhalb updateUI() Methode

+0

Danke. Aber Facebook Login funktioniert gut. Das Hauptproblem ist, weil der Fehler in Firebase Auth. –

0

nicht kümmern Sie Ausnahme (java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist). Weil dies ein Firebase-Bug ist. In deiner App wird kein Problem auftreten, also vergiss diese Ausnahme.

+0

Können Sie eine Quelle/einen Link für einen Fehler hinzufügen? –

Verwandte Themen