没有完成其他部分回到IF语句?(Android和Firebase)



我有下面的方法用于注册方案,在创建它将敬酒帐户成功创建之后,再次显示出part Toast是否也喜欢电话号码已经存在

private void CreateAccount(String name, String phone, String password) {
        if(TextUtils.isEmpty(name) || TextUtils.isEmpty(phone) || TextUtils.isEmpty(password)) {
            Toast.makeText(SignUpActivity.this, "All fields required", Toast.LENGTH_LONG).show();
        } else {
            FirebaseDatabase database = FirebaseDatabase.getInstance();
            final DatabaseReference table_user = database.getReference("User");
            final ProgressDialog dialog = new ProgressDialog(SignUpActivity.this);
            dialog.setMessage("Please wait...");
            dialog.show();
            table_user.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if(dataSnapshot.child(edtPhone.getText().toString()).exists()) {
                        dialog.dismiss();
                        Toast.makeText(SignUpActivity.this, "Phone Number Already Exists", Toast.LENGTH_SHORT).show();
                    } else {
                        dialog.dismiss();
                        User user = new User(edtName.getText().toString(), edtPassword.getText().toString());
                        table_user.child(edtPhone.getText().toString()).setValue(user);
                        Toast.makeText(SignUpActivity.this, "Account Created Successfully", Toast.LENGTH_SHORT).show();
                        Intent homeIntent = new Intent(SignUpActivity.this, HomeActivity.class);
                        homeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        startActivity(homeIntent);
                        finish();
                    }
                }
                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
        }
    }

我做错了什么,有人可以告诉我发生了什么以及如何解决 这个

您是否尝试过?

table_user.child(edtPhone.getText().toString()).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(dataSnapshot.getValue() != null) {
                    dialog.dismiss();
                    Toast.makeText(SignUpActivity.this, "Phone Number Already Exists", Toast.LENGTH_SHORT).show();
                } else {
                    dialog.dismiss();
                    User user = new User(edtName.getText().toString(), edtPassword.getText().toString());
                    table_user.child(edtPhone.getText().toString()).setValue(user);
                    Toast.makeText(SignUpActivity.this, "Account Created Successfully", Toast.LENGTH_SHORT).show();
                    Intent homeIntent = new Intent(SignUpActivity.this, HomeActivity.class);
                    homeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(homeIntent);
                    finish();
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    }

最新更新