Не удалось получить вывод «Имя пользователя было использовано!»когда я ввел имя пользователя, которое было сохранено в базе данных - PullRequest
0 голосов
/ 25 сентября 2019

Это структура базы данных

Ссылка на базу данных

DatabaseReference referSales;
referSales = FirebaseDatabase.getInstance().getReference("Sales");

Проверка имени пользователя (включая проверку пароля)

referSales.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(!(edtPassword.getText().toString()).equals(edtConfirmPassword.getText().toString())) {
                    loadingDialog.dismiss();
                    Toast.makeText(Registration.this, "Password and Confirm Password are not identical!", Toast.LENGTH_SHORT).show();

                    if(dataSnapshot.child(edtUsername.getText().toString()).exists()){
                    loadingDialog.dismiss();
                    Toast.makeText(Registration.this, "Username has been used!", Toast.LENGTH_SHORT).show();
                    }

Обновление базы данных

Если введенное имя пользователя не дублируется с именем пользователя, сохраненным в базе данных, пароль и пароль подтверждения идентичны, информация о новом пользователе будетбыть добавленным в базу данных.

                }else{
                    loadingDialog.dismiss();
                    final Sales salesperson = new Sales(edtFirstName.getText().toString(),edtLastName.getText().toString(),
                            edtPhoneNo.getText().toString(),edtEmail.getText().toString(), edtUsername.getText().toString(),
                            edtPassword.getText().toString(),edtConfirmPassword.getText().toString());
                    referSales.child(edtUsername.getText().toString()).setValue(salesperson).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> salesperson) {
                            if(salesperson.isSuccessful()){
                                Toast.makeText(Registration.this, "Added Successfully!", Toast.LENGTH_SHORT).show();
                                finish();
                            }
                        }
                    });

                }

            }

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Пожалуйста, проверьте этот запрос и опубликуйте журнал.

Query search = databaseReference.child("Sales").orderByChild("username")
                    .equalTo(edtUserName.getText().toString().trim());

search.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if(dataSnapshot.exists()){
            Toast.makeText(getApplicationContext(),"Usename used" ,
                    Toast.LENGTH_LONG).show();
        }else{
            Log.e("elsecond", user does not exist);
            // Your else condition
        }

    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.e("error", databaseError);
    }
});
0 голосов
/ 25 сентября 2019

Вы можете запросить базу данных для проверки, если имя пользователя уже использовалось в вашей базе данных.

 Query query = databaseReference.child("users").orderByChild("userName")
                    .equalTo(edtUserName.getText().toString().trim();

query.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    if(dataSnapshot.exists()){
                        //user exist

                        Toast.makeText(getApplicationContext(),"Usename Has been used" ,
                                Toast.LENGTH_LONG).show();
                    }else{

                        //CREATE THE USER
                    }

                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...