我的Android应用程序上有Facebook登录,它成功登录,但登录后,它会保留在登录按钮屏幕上。换句话说,点击“登录Facebook”按钮并使用您的帐户登录后,您将陷入无休止的登录循环。我没有收到任何输出错误,所以我到目前为止调试的尝试都有不成功......一些帮助将不胜感激。
private CallbackManager callbackManager;
private static final int SIGN_IN_REQUEST_CODE = 1;
private FirebaseListAdapter<ChatMessage> adapter;
private TextView info;
private LoginButton loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final View mainActivity = getLayoutInflater().inflate(R.layout.activity_main, null);
View loginButtonLayout = getLayoutInflater().inflate(R.layout.login_button, null);
setContentView(mainActivity);
Firebase.setAndroidContext(this);
//If there is no account associated with user, follow this loop
if (FirebaseAuth.getInstance().getCurrentUser() == null) {
FacebookSdk.sdkInitialize(getApplicationContext());
FacebookSdk.setApplicationId(getResources().getString(R.string.facebook_app_id));
setContentView(loginButtonLayout);
callbackManager = CallbackManager.Factory.create();
info = (TextView)findViewById(R.id.info);
loginButton = (LoginButton) loginButtonLayout.findViewById(R.id.login_button);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// Start sign in/sign up activity
setContentView(mainActivity);
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.build(),
SIGN_IN_REQUEST_CODE
);
}
@Override
public void onCancel() {
Toast.makeText(MainActivity.this,
"We couldn't sign you in. Please try again later.",
Toast.LENGTH_LONG)
.show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(MainActivity.this,
"We couldn't sign you in. Please try again later.",
Toast.LENGTH_LONG)
.show();
}
});
} else {
// User is already signed in. Therefore, display a welcome message
}
答案 0 :(得分:1)
您需要捕获请求并在onActivityResult()
上处理结果