Android Подождите, чтобы прослушать изменение значения в Firebase - PullRequest
0 голосов
/ 01 июня 2018

В моем приложении есть два типа пользователей: клиент и доставщик. Клиент устанавливает значение в конкретном доставителе в базе данных, и доставщик прослушивает это значение и должен принять или отклонить запрос клиента в другом значении.Что мне нужно, это настроить слушателя на стороне клиента, а затем заставить его ждать 15 секунд ответа доставщика, прежде чем перейти к другому доставщику, как это сделать?

Структура Firebase

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете использовать postDelayed с Firebase valueEvent Listener.Объявите глобальную переменную runnable в вашей деятельности.

final Handler handler = new Handler(Looper.getMainLooper());
Runnable runnable = null;

Затем добавьте слушатель события value на узел, который вы хотите прочитать.в обратном вызове onDataChange проверьте, не существует ли моментальный снимок, и была ли запущенная переменная нулевой, установите таймер.

new ValueEventListener() {
      @Override
      public void onDataChange(final DataSnapshot dataSnapshot) {
        if (!dataSnapshot.exists() && runnable == null) {
           // initialize runnable
           // handler.postDelayed(runnable,15000)
        } else
        { //cancel the runnable if not null so that it don't get triggered}
      }
      @Override
      public void onCancelled(DatabaseError databaseError) { }

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