Как сравнить значение Firebase datasnapshot и показать данные в списке - PullRequest
1 голос
/ 18 февраля 2020

Screenshot

В основном есть строковое значение currentuserid, которое содержит УНИКАЛЬНЫЙ ID пользователя.

В «уведомлениях» много дочерних элементов

Я хочу показывать только данные только для текущего пользователя. Это правильно?

Мой код пока ..

    DatabaseReference dbReff = database.getReference("notifications");
    dbReff.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()){
                for (DataSnapshot npsnapshot : dataSnapshot.getChildren()){

                    if(currentUserId.equals(npsnapshot.child("id").getValue()))
                    {
                        ListData l = npsnapshot.getValue(ListData.class);
                        listData.add(l);
                    }

                    else
                    {
                        Toast.makeText(getApplicationContext(),"No notifications",Toast.LENGTH_LONG).show();
                    }
                }
                adapter=new MyAdapter(listData);
                rv.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

1 Ответ

0 голосов
/ 18 февраля 2020

Вы можете compare данные, основанные на вашем текущем идентификаторе пользователя на стороне сервера, используя методы orderByChild и equalTo, предоставленные firebase. Проверьте ниже:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("notifications");
databaseReference.orderByChild("id").equalTo(currentUserId).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {

            ListData l = childSnapshot.getValue(ListData.class);
            listData.add(l);
        }

        ....
    }

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

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