Firebase 在横向模式下调用时未调用CreateSignInEntBuilder()的onActivityResult
我的整个项目是在纵向模式下构建的,我的所有活动都在AndroidManifest.xml中设置了以下选项: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
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是您调用登录操作的活动。