【问题标题】:Android - Firebase Dynamic Facebook buttonAndroid - Firebase 动态 Facebook 按钮
【发布时间】:2016-12-05 23:08:37
【问题描述】:

请原谅我重复发布此question,我没有得到回复,我仍然有同样的问题。试图修复它,但没有成功。非常感谢任何帮助。

我想使用 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);
            // ...
        }
    });

现在在第二个活动中,我有一个按钮退出,它可以让我回到第一个活动,然后退出我登录的帐户。代码:

        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" />

我已经用谷歌搜索了这个,但我找不到任何东西。 尝试将退出方法更改为

FirebaseAuth.getInstance().signOut();

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

【问题讨论】:

    标签: android facebook firebase firebase-authentication


    【解决方案1】:

    我也有过同样糟糕的经历。最后,我使用LoginManager 进行 Facebook 身份验证,并做了这样的事情:

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

    【讨论】:

    • 谢谢老兄,成功了!没有人能回答我,但你做到了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    相关资源
    最近更新 更多