Firebase禁用新用户注册

时间:2018-10-31 13:46:45

标签: java android firebase firebase-authentication google-cloud-firestore

我当前正在使用Firebase身份验证ui登录用户。我要实现的是仅允许那些已经创建了帐户的用户登录。 每当新凭据尝试登录时,我希望Firebase身份验证ui禁用帐户注册。请告诉我如何实现。

这是我登录用户的方式:

  if(FirebaseAuth.getInstance().getCurrentUser()==null) {
        List<AuthUI.IdpConfig> idpConfigList = Arrays.asList(
                //new AuthUI.IdpConfig.EmailBuilder().build(),
                new AuthUI.IdpConfig.GoogleBuilder().build(),
                new AuthUI.IdpConfig.PhoneBuilder().build()
        );
        startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder()
                .setAvailableProviders(idpConfigList).build(), SIGN_IN_CONST);
    }else {
        currentUser=FirebaseAuth.getInstance().getCurrentUser();
        onSignedIn();
    }

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我想要实现的是只允许那些已经创建了帐户的用户登录。

如果要检查用户是否是新用户,这是同一件事。因此,要解决此问题,您只需调用AdditionalUserInfo的接口isNewUser()方法:

  

返回用户是新用户还是现有用户

因此,请使用以下代码行:

mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        boolean isNewUser = task.getResult().getAdditionalUserInfo().isNewUser();
        if (isNewUser) {
            Log.d(TAG, "Is New User!"); //Restrict the authentication process
        } else {
            Log.d(TAG, "Is Old User!"); //Allow user to authenticate
        }
    }
});