java - Firebase createUserWithEmailAndPassword task.isSuccessful()

标签 java android firebase firebase-authentication

我正在创建一个 Android 应用程序并正在实现登录/注册功能。

我正处于注册 Activity 在我的 Firebase 应用程序中成功创建用户条目的阶段,但是,我似乎无法跟踪任务是否成功。

Users being created

private void startRegister() {
    String email = mEmailField.getText().toString();
    String password = mPasswordField.getText().toString();
    String confirmPassword = mConfirmPassword.getText().toString();

    // Check that fields are not empty
    if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password) || TextUtils.isEmpty(confirmPassword)) {

        Toast.makeText(Register.this, "Email, password or confirm password field cannot be empty.", Toast.LENGTH_LONG).show();
    } else if (!password.equals(confirmPassword)) {

        Toast.makeText(Register.this, "Password and confirm password should match", Toast.LENGTH_LONG).show();
    } else {

        mAuth.createUserWithEmailAndPassword(email, password).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
            @Override
            public void onSuccess(AuthResult authResult) {

                Toast.makeText(Register.this, "Success", Toast.LENGTH_LONG).show();
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {

                Toast.makeText(Register.this, "Failure", Toast.LENGTH_LONG).show();
            }
        });
    }
}

if !task.isSuccessful() 或 else block 都会到达,但用户是在 Firebase 中创建的。为什么我无法跟踪成功/失败的任何想法?

比较:

这在我的登录类中有效。

        mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {

                if (!task.isSuccessful()) {
                    Toast.makeText(Login.this, "Credentials error, user may not exist.", Toast.LENGTH_LONG).show();
                }
            }
        });

最佳答案

很难说当前的实现方式如何。 尝试直接添加一个 onSuccess

mAuth.createUserWithEmailAndPassword(email, pass).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
        @Override
        public void onSuccess(AuthResult authResult) {
           //done
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            //display toast if registering failed
            ToastRect.failed(RegisterActivity.this, getString(R.string.app_activities_error_text) 
        }
   });

关于java - Firebase createUserWithEmailAndPassword task.isSuccessful(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55460453/

相关文章:

java - 如何在 lambda 表达式中使用外部变量

android - 在android中以编程方式从原始文件夹设置为默认铃声

android - 在 Android 上构建 Xamarin.Forms 应用程序时识别大量 XA0106 警告的罪魁祸首

ios - Firebase 通知

swift - 关闭意外要求抛出(Firebase)

android - 如何添加 Firebase 对象/节点+子树修改时的时间戳?

java - Spring MVC 不记录所有异常

java - 分离实体和被管理实体

java - 具有相同 id 的一对一映射

android - 如何在没有颜色资源的情况下更改 SwipeRefreshLayout 进度背景颜色?