Возникли проблемы с чтением ребенка в базе данных Firebase - PullRequest
0 голосов
/ 19 июня 2019

! https://photos.app.goo.gl/8axsEgMJQAsBFnJF9

Поэтому я пытался сравнить мою строку с базой данных, которую я хотел проверить, существует ли данная строка пользователем в базе данных или нет. Но, как я написал код, на выходе всегда нет. Я пробовал и ValueEventListener, и ChildEventListener.

Так, как я могу получить требуемый результат.

parentRef = FirebaseDatabase.getInstance().getReference();

parentRef.child("Companies").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                if ((dataSnapshot.child("jaq").exists())) {
                    Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "No", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                if ((dataSnapshot.child("jaq")).exists()) {
                    Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "No", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

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

            }
        });

1 Ответ

1 голос
/ 19 июня 2019

В valueEventListener попробуйте следующее:

DatabaseReference reference = database.getReference("Companies");
reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

        for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
             if(childSnapshot.child("jaq").exists()){
               Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
             }
       }
  }
      @Override
     public void onCancelled(DatabaseError databaseError) {
      }
  });

Здесь вы зацикливаетесь внутри dataSnapshot и затем проверяете, существует ли дочерний элемент jaq в базе данных.

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