Firebase 在横向模式下调用时未调用CreateSignInEntBuilder()的onActivityResult

Firebase 在横向模式下调用时未调用CreateSignInEntBuilder()的onActivityResult,firebase,authentication,firebase-authentication,onactivityresult,landscape-portrait,Firebase,Authentication,Firebase Authentication,Onactivityresult,Landscape Portrait,我的整个项目是在纵向模式下构建的,我的所有活动都在AndroidManifest.xml中设置了以下选项: android:screenOrientation=“肖像” 但是,由于无法在FirebaseUI上设置方向(如上所述),用户有机会以横向模式登录。发生这种情况时,永远不会调用onActivityResult: public void createSignInIntent() { // [START auth_fui_create_intent] // Choose au

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

但是,由于无法在FirebaseUI上设置方向(如上所述),用户有机会以横向模式登录。发生这种情况时,永远不会调用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

        ...
public void createSignInIntent(){
//[开始授权/创建意图]
//选择身份验证提供程序
列表提供程序=Arrays.asList(
新建AuthUI.IdpConfig.EmailBuilder().build(),
新建AuthUI.IdpConfig.GoogleBuilder().build()
,新建AuthUI.IdpConfig.FacebookBuilder().build()
);
//创建并启动登录意图
startActivityForResult(
AuthUI.getInstance()
.CreateSignInEntBuilder()
.setAvailableProviders(提供程序)
.setTheme(R.style.FirebaseTheme)
.setLogo(R.drawable.logofirebase_9)
.build(),
RC_登录);
}
//[启动验证结果]
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
//在横向模式下从未达到此点。
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==RC\u登录){
IdResponse-response=IdResponse.fromResultIntent(数据);
if(resultCode==RESULT\u OK){
//已成功登录
...
纵向模式下的行为:用户按下任何登录按钮,该过程就会完成

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


发生这种情况的原因以及我如何解决该问题?

通过在AndroidManifest.xml中的FirebaseUI活动上设置android:configChanges标志来解决,如下所示:

    <activity android:name=".FirebaseUIActivity"
        android:configChanges="orientation|screenSize|keyboardHidden">
    </activity>

什么是“.FirebaseUIActivity”?我尝试了它,但manifest不理解它与调用Frebase登录的mainActivity一起工作。在横向和纵向.Tx中。请在回答中提到FirebaseUIActivity是您调用登录操作的活动。