Как отобразить просмотр списка, сравнивая значения в Android - PullRequest
1 голос
/ 08 июля 2019

У меня есть приложение со списком.В настоящее время он показывает все данные, которые я ввожу в базу данных.Я хочу отобразить данные из базы данных Firebase, сравнивая текущее время и время, которое я ввел в базу данных.

Вот код

 lv = findViewById(R.id.listView);
        Query query = FirebaseDatabase.getInstance().getReference().child("Details");
        FirebaseListOptions<Member> options = new FirebaseListOptions.Builder<Member>()
                .setLayout(R.layout.list_view_item)
                .setQuery(query,Member.class)
                .build();
        adapter = new FirebaseListAdapter(options) {
            @Override
            protected void populateView(@NonNull View v, @NonNull Object model, int position) {
                check();

                TextView loc = v.findViewById(R.id.locs);
                TextView des = v.findViewById(R.id.dests);
                TextView bus = v.findViewById(R.id.busn);
                TextView tim = v.findViewById(R.id.time);

                Member db = (Member) model;
                loc.setText(db.getLocation().toString());
                des.setText(db.getDestination().toString());
                bus.setText(db.getBusname().toString());
                tim.setText(db.getTime().toString());
            }
        };
        lv.setAdapter(adapter);

}

 @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }


@Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
}

Любая ошибка, пожалуйста, сообщите мне, я новичокв Android.Заранее спасибо:)

1 Ответ

0 голосов
/ 08 июля 2019

Вы ищете Запросы к базе данных Firebase , которые позволяют фильтровать данные на серверах Firebase. Скажем, у вас есть поле, которое содержит метку времени для каждого узла в деталях (количество миллисекунд с 1 января 1970 года). Вы можете получить каждый дочерний узел от одной до двух недель назад с помощью:

Query query = FirebaseDatabase.getInstance().getReference().child("Details");

long oneWeekInMillis = 7 * 24 * 60 * 60 * 1000;
long oneWeekAgo = System.currentTimestampMillis() - oneWeekInMillis;
long twoWeeksAgo = oneWeekAgo - oneWeekInMillis;

query = query.orderByChild(timestamp).startAt(twoWeeksAgo).endAt(oneWeekAgo);

И вы можете просто передать этот запрос в адаптер, как вы уже делаете.

...