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

时间:2018-09-09 22:00:13

标签: android firebase firebase-authentication firebaseui

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

代码如下:

 // 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;
            }
        }

    }

}

2 个答案:

答案 0 :(得分:2)

  

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

不,您不能。 至少不会以您现在正在使用的方式
由于您使用的是Firebase Auth UI for Android,因此必须遵守它提供的身份验证流程。

你能做什么?

您可以通过遵循the Firebase Authentication Android documentation页面并将其自己实现到您的应用中来创建自己的自定义身份验证流程和用户界面。

此外,您还可以继续编辑Android Auth UI source code以满足您的需求,我怀疑这样做对您来说会更容易。

答案 1 :(得分:2)

是的,这是可能的:使用setAllowNewAccounts。 (好像我们忘了添加文档,对此感到抱歉。)

完整示例:

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