Android - Firebase Dynamic Facebook按钮

问题描述:

不好意思双倍发帖这个question,我没有得到回复,我仍然有同样的问题。试图修复它,但没有成功。任何帮助是极大的赞赏。Android - Firebase Dynamic Facebook按钮

我想使用Facebook登录按钮来签署用户进入我的应用程序。

现在当loginbutton被点击时,我登录并继续第二个活动。

callbackManager = CallbackManager.Factory.create(); 
    LoginButton loginButton = (LoginButton) findViewById(R.id.loginButton); 
    loginButton.setReadPermissions("email", "public_profile"); 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      Log.d(TAG, "facebook:onSuccess:" + loginResult); 
      handleFacebookAccessToken(loginResult.getAccessToken()); 
     } 

     @Override 
     public void onCancel() { 
      Log.d(TAG, "facebook:onCancel"); 
      // ... 
     } 

     @Override 
     public void onError(FacebookException error) { 
      Log.d(TAG, "facebook:onError", error); 
      // ... 
     } 
    }); 

现在,在第2个活动,我有一个按钮注销返回我的第一个活动,并登出我的帐户我登录。代码:

 AuthUI.getInstance() 
       .signOut(this) 
       .addOnCompleteListener(new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         finish(); 
        } 
       }); 

现在,一切工作正常,除了签出部分。

它注销帐户(我可以在我的日志中看到它)。但是当我回到MainActivity时,动态Facebook登录按钮仍然显示:Sign out,而它应该已经说明了Sign in with Facebook

这是Facebook的按钮,我使用:

<com.facebook.login.widget.LoginButton 
    android:id="@+id/loginButton" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_horizontal" 
    android:layout_weight="1" 
    android:layout_marginBottom="56dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentStart="true" /> 

我用Google搜索,但我无法找到任何东西。 试过的方法改变登出来

FirebaseAuth.getInstance().signOut(); 

但是,这是没有任何不同的结果。

我也有过这种不好的经历。最后,我使用LoginManager进行Facebook身份验证,并做了类似这样的操作:

public void logOut() { 
    FirebaseAuth.getInstance().signOut(); 
    LoginManager.getInstance().logOut(); 
} 
+0

谢谢你,这样做了!没有人可以回答我,但你做到了! –