存在Firebase检查电子邮件(fetchProvidersForEmail替代)

时间:2018-05-03 10:03:02

标签: android firebase firebase-authentication

不推荐使用fetchProvidersForEmail方法。 但在firebase网站上,我没有找到替代方案,所以我不得不问你。希望你能帮忙。

我想检查数据库中是否已有电子邮件,这是旧代码。

  Auth.fetchProvidersForEmail(Email.getText().toString()).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() {
@Override
public void onComplete(@NonNull Task<ProviderQueryResult> task) {

2 个答案:

答案 0 :(得分:4)

正如fetchProvidersForEmail的文档所说:

  

fetchProvidersForEmail(String email)

     

此方法已弃用。此方法正在重命名以确保功能清晰 - 请改为使用fetchSignInMethodsForEmail(String)方法。

如果电子邮件没有帐户,SignInMethodQueryResult. getSignInMethods()将返回一个空列表。

答案 1 :(得分:0)

如果要检查是否存在电子邮件,如果您检查用户是否第一次登录,则会发生相同的情况。为实现此目的,您只需在isNewUser()回调中调用OnCompleteListener.onComplete方法,就像这样:

OnCompleteListener<AuthResult> completeListener = new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        if (task.isSuccessful()) {
            boolean isNewUser = task.getResult().getAdditionalUserInfo().isNewUser();
            if (isNewUser) {
                Log.d("TAG", "Is New User!");
            } else {
                Log.d("TAG", "Is Old User!");
            }
        }
    }
};

有关更多信息,请参阅official doc