AddValueEventListener запускается if и оператор else в firebase android - PullRequest
0 голосов
/ 20 марта 2020

Я использую функцию addvalueEventListener для извлечения данных из firebase. Я пытаюсь достичь операции И с помощью этой функции. Проблема заключается в том, что когда я вызываю эту функцию, она может фильтровать данные на стороне клиента, а также отображать их в программе recyclerview, но может выполнять оператор if, если данные найдены, а также выполнять другую часть.

Предположим, мне нужны данные, которые доступны в Firebase, он фильтрует данные и показывает, а также запускает другие данные детали не найдены.

Мой основной код функции:

private void GetFilterData(final String filter) {

    reference = FirebaseDatabase.getInstance().getReference().child("Donation");


    Query query = reference.limitToLast(20).orderByChild("username").equalTo(username);

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

//Here I can check if data is exist or not, if exist it shows data
            if (dataSnapshot.exists())
            {
                arrayList.clear();
                alert.setVisibility(View.GONE);
                for (DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
                {
                    DonationHelper donationHelper = dataSnapshot1.getValue(DonationHelper.class);

//here I want to check again and filter data, if data exist, shows data and if does not exist required filter then run else part. But issue is that if data exist it shows data and also run its else part.
                    if (donationHelper.getAction().equals(filter))
                    {
                        pd.cancel();
                        arrayList.add(donationHelper);
                    }
                    else
                    {

//Filter data exist or not, everytime it run else part code
                        pd.cancel();
                        alert.setVisibility(View.VISIBLE);
                        alert.setText("Currently no request is in Queue");
                        //Toast.makeText(Track_Donation.this, "No data found", Toast.LENGTH_SHORT).show();
                    }
                    adapter = new DonationAdapter(Track_Donation.this,arrayList);
                    donationdata.setAdapter(adapter);
                }
            }
            else
            {
                pd.cancel();
                alert.setText("Start do Donation, and help Poor and Needy people's");
                Toasty.error(Track_Donation.this, "You don't do any Donation yet", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            pd.cancel();
            Toasty.error(Track_Donation.this, "Server Error", Toast.LENGTH_SHORT).show();
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...