Android 我可以更改Firebase身份验证UI的身份验证流吗?

Android 我可以更改Firebase身份验证UI的身份验证流吗?,android,firebase,firebase-authentication,firebaseui,Android,Firebase,Firebase Authentication,Firebaseui,根据:如果用户输入一个不存在的电子邮件地址,则流将用户带到注册部分。在我的应用程序中将没有注册部分。如何跳过注册部分并将用户重定向到登录屏幕 代码如下: // Choose authentication providers List<AuthUI.IdpConfig> providers = Arrays.asList( new AuthUI.IdpConfig.EmailBuilder().build()); // Create and

根据:如果用户输入一个不存在的电子邮件地址,则流将用户带到注册部分。在我的应用程序中将没有注册部分。如何跳过注册部分并将用户重定向到登录屏幕

代码如下:

 // Choose authentication providers
    List<AuthUI.IdpConfig> providers = Arrays.asList(
            new AuthUI.IdpConfig.EmailBuilder().build());

    // Create and launch sign-in intent
    startActivityForResult(
            AuthUI.getInstance()
                    .createSignInIntentBuilder()
                    .setAvailableProviders(providers)
                    .build(),
            RC_SIGN_IN);
}



@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {


    super.onActivityResult(requestCode, resultCode, data);
    // RC_SIGN_IN is the request code you passed into startActivityForResult(...) when starting the sign in flow.
    if (requestCode == RC_SIGN_IN) {
        IdpResponse response = IdpResponse.fromResultIntent(data);

        // Successfully signed in
        if (resultCode == RESULT_OK) {
            //startActivity(SignedInActivity.createIntent(this, response));
            finish();
        }
        else {

            // Sign in failed
            if (response == null) {


            }

            if (response.getError().getErrorCode() == ErrorCodes.NO_NETWORK) {
                Toast.makeText(this, "No Connection." , Toast.LENGTH_SHORT).show();
                return;
            }
        }

    }

}
//选择身份验证提供程序
列表提供程序=Arrays.asList(
新的AuthUI.IdpConfig.EmailBuilder().build());
//创建并启动登录意图
startActivityForResult(
AuthUI.getInstance()
.CreateSignInEntBuilder()
.setAvailableProviders(提供程序)
.build(),
RC_登录);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
//RC_SIGN_IN是启动登录流时传递到startActivityForResult(…)的请求代码。
if(requestCode==RC\u登录){
IdResponse-response=IdResponse.fromResultIntent(数据);
//已成功登录
if(resultCode==RESULT\u OK){
//startActivity(SignedActivity.createIntent(this,response));
完成();
}
否则{
//登录失败
如果(响应==null){
}
if(response.getError().getErrorCode()==ErrorCodes.NO_网络){
Toast.makeText(这是“无连接”,Toast.LENGTH_SHORT).show();
返回;
}
}
}
}

是的,这是可能的:使用
设置AllowneWaAccounts
。(看来我们忘记添加文档了,对此表示抱歉。)

完整示例:

new AuthUI.IdpConfig.EmailBuilder()
    .setAllowNewAccounts(false)
    .build()

FirebaseUI只是为那些在登录流中没有做任何特殊事情的人提供的一种方便方法。如果你需要一些定制的东西,最好是自己构建。我在哪里可以看到像这样的其他方法?例如,我不希望firebase询问用户“登录有问题?”或者我可以编辑文本吗?很遗憾,这无法更改。每个提供程序生成器上都有修改提供程序的方法。找到了一个愚蠢的方法。首先,复制相关布局并将按钮的宽度和高度编辑为0。第二,使按钮的字符串名为空。愚蠢的,但它会工作。是的,只是要小心,当你升级FUI版本,因为这不是公共API,任何事情都可以更改,恕不另行通知。