在横向模式下调用时,不会调用createSignInIntentBuilder()的onActivityResult

问题描述 投票:0回答:1

我的整个项目都是以人像模式构建的,我的所有活动都在AndroidManifest.xml中设置为以下选项:android:screenOrientation =“ portrait”

但是,由于无法在FirebaseUI上进行设置方向(如here所述,因此用户有机会以横向模式登录)。发生这种情况时,永远不会调用onActivityResult:

 public void createSignInIntent() {
    // [START auth_fui_create_intent]
    // Choose authentication providers
    List<AuthUI.IdpConfig> providers = Arrays.asList(
            new AuthUI.IdpConfig.EmailBuilder().build(),                
            new AuthUI.IdpConfig.GoogleBuilder().build()
            ,new AuthUI.IdpConfig.FacebookBuilder().build()                
    );


    // Create and launch sign-in intent
    startActivityForResult(
            AuthUI.getInstance()
                    .createSignInIntentBuilder()
                    .setAvailableProviders(providers)
                    .setTheme(R.style.FirebaseTheme)                        
                    .setLogo(R.drawable.logofirebase_9)
                    .build(),
            RC_SIGN_IN);

}

// [START auth_fui_result]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    // NEVER REACHING TO THIS POINT IN LANDSCAPE MODE.

    super.onActivityResult(requestCode, resultCode, data);



    if (requestCode == RC_SIGN_IN) {
        IdpResponse response = IdpResponse.fromResultIntent(data);

        if (resultCode == RESULT_OK) {
            // Successfully signed in

        ...

纵向模式下的行为:用户按下任何登录按钮,然后过程完成。

在横向模式下的行为:用户按下任何登录按钮(即,使用Facebook登录),该过程似乎正在尝试登录用户(显示了加载的带圆圈的动画),但是几秒钟后,相同的FirebaseUI再次显示。

为什么会这样,我该如何解决这个问题?

firebase authentication firebase-authentication onactivityresult landscape-portrait
1个回答
0
投票
通过在AndroidManifest.xml中的FirebaseUI活动上设置android:configChanges标志来解决,如下所示:
© www.soinside.com 2019 - 2024. All rights reserved.