0

Ich versuche, mich mit Facebook in Firebase anmelden. Facebook-Login funktioniert, aber Firebase wirft einen Fehler auf. BTW Google-Anmeldung funktioniert perfekt (ich habe GSI-Code entfernt, um es kürzer zu machen), so dass ich sehr bezweifle, dass das Problem in Firebase ist. Hier ist logsFehler 100 beim Anmelden mit Facebook in Firebase

08-30 11:43:43.091 25460-25460/com.kid.gl W/StartActivity: signInWithCredential 
                 com.google.firebase.FirebaseException: An internal error has occured. [ Unsuccessful debug_token response from Facebook: {"error":{"message":"(#100) You must provide an app access token or a user access token that is an owner or developer of the app","type":"OAuthException","code":100,"fbtrace_id":"GLp5H2ygSPb"}} ] 
                  at com.google.android.gms.internal.zzafd.zzes(Unknown Source) 
                  at com.google.android.gms.internal.zzafa$zzg.zza(Unknown Source) 
                  at com.google.android.gms.internal.zzafl.zzet(Unknown Source) 
                  at com.google.android.gms.internal.zzafl$zza.onFailure(Unknown Source) 
                  at com.google.android.gms.internal.zzafg$zza.onTransact(Unknown Source) 
                  at android.os.Binder.execTransact(Binder.java:446) 

ich diesen Fehler für ca. 3 Stunden auf der Suche, und überall nur eine Lösung gefunden - deaktivieren „Secret einbetten in Client“ in Facebook Konsoleneinstellungen. Das hat überhaupt nichts bewirkt.

public class StartActivity extends AppCompatActivity 
    implements 
       View.OnClickListener, 
       FacebookCallback<LoginResult> { 
private static final String TAG = "StartActivity"; 
private FirebaseAuth mAuth; 
private FirebaseAuth.AuthStateListener mAuthListener; 
private CallbackManager callbackManager; 

@SuppressWarnings("ConstantConditions") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    setContentView(R.layout.activity_start); 

    mAuth = FirebaseAuth.getInstance(); 
    mAuthListener = new FirebaseAuth.AuthStateListener() { 
     @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      FirebaseUser user = firebaseAuth.getCurrentUser(); 
      if (user != null) 
       afterLogin(); 
      else 
       logOut(); 
     } 
    }; 

    //Facebook login 
    callbackManager = CallbackManager.Factory.create(); 
    LoginButton facebookButton = (LoginButton) findViewById(R.id.facebook_login); 
    facebookButton.setReadPermissions("public_profile", "email"); 
    facebookButton.registerCallback(callbackManager, this); 
    LoginManager.getInstance().registerCallback(callbackManager,this); 
} 

@Override public void onStart() { 
    super.onStart(); 
    mAuth.addAuthStateListener(mAuthListener); 
} 

@Override public void onStop() { 
    super.onStop(); 
    if (mAuthListener != null) 
     mAuth.removeAuthStateListener(mAuthListener); 
} 

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { 
      try { callbackManager.onActivityResult(requestCode, resultCode, data); } 
       catch (Exception e) { Log.wtf("сука блядь ", "ебучий фейсбук"); e.printStackTrace(); } 
} 

//Facebook login methods 
@Override 
public void onSuccess(LoginResult loginResult) { 
    //LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile")); 
    AuthCredential credential = FacebookAuthProvider.getCredential(loginResult.getAccessToken().getToken()); 
    mAuth.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()); //Exception is here 
      Toast.makeText(StartActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); 
     } 
    }}); 
} 
@Override public void onCancel() {} 
@Override public void onError(FacebookException error) { 
    Toast.makeText(this, error.getLocalizedMessage(), Toast.LENGTH_LONG).show(); 
} 
} 

S.S .: Facebook SDK hinzugefügt mithilfe von Gradle, kann diese Ursache des Problems sein? Ein Teil build.gradle:

compile 'com.google.firebase:firebase-auth:9.4.0' 
compile 'com.facebook.android:facebook-android-sdk:[4,5)' 
+0

Haben Sie facebook in Anmelde-Verfahren in Authentifizierung aktivieren? –

+0

Sicher. App-ID und Secret wurden hinzugefügt. Ich habe alle Schritte von Facebook und Firebase-Tutor –

+0

versucht dies - http://Stackoverflow.com/a/37522695/3774906 –

Antwort

0

Schließlich fand ich heraus, dass ich Client-Code anstelle Geheimnis App verwendet haben: D My bad, sorry

+0

Ich bekomme den gleichen Fehler, wo hast du genau den Code ändern? – Bikash

+0

@bikash in der FirebaseConsole –

0

Wahrscheinlich Ihre Facebook-App wird noch im Entwicklungsmodus zu sein, was bedeutet, müssen Sie explizit die Benutzer hinzufügen, die Zugriff darauf haben.

  1. gehen
  2. wählen Sie Ihre App
  3. klicken Rollen im linken Menü
  4. unter Tester fügen Sie die Facebook-ID des Benutzers developers.facebook.com Sie in der Lage sein wollen log in

Alternativ können Sie die App öffentlich machen:

  1. gehen
  2. wählen Sie Ihre App
  3. klicken App Review im linken Menü
  4. setzen Sie den Regler unter Stellen Holla Öffentlichkeit developers.facebook.com? zu Ja
+0

Ich habe es bereits eingestellt, um öffentlich zu sein, nichts geändert, leider –

+0

Wie auch immer, ich war auf Konto testen, das ist als Administrator –

Verwandte Themen