Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在返回if语句的其他部分没有完成?(android和firebase)_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

在返回if语句的其他部分没有完成?(android和firebase)

在返回if语句的其他部分没有完成?(android和firebase),android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,对于注册场景,我有下面这样的方法,创建后将toast成功创建帐户,但之后再次显示PartToast是否也像电话号码已经存在 private void CreateAccount(String name, String phone, String password) { if(TextUtils.isEmpty(name) || TextUtils.isEmpty(phone) || TextUtils.isEmpty(password)) { Toast

对于注册场景,我有下面这样的方法,创建后将toast成功创建帐户,但之后再次显示PartToast是否也像电话号码已经存在

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) {

            }
        });
    }

addValueEventListener将调用该节点中发生的每个更改use addListenerForSingleValueEvent