Android等待收听firebase中的值更改

时间:2018-06-01 19:28:03

标签: android firebase firebase-realtime-database

我的应用程序中有两种类型的用户,一名客户和一名送货员, 客户在数据库中的特定送货员中设置值,送货员监听该值,并接受或拒绝其他值中的客户请求。 我需要的是在客户端设置监听器然后让他等待15秒钟的送货员响应,然后转移到另一个送货员,怎么做?

Firebase structure

1 个答案:

答案 0 :(得分:0)

您可以将postDelayed与Firebase valueEvent侦听器一起使用。 在您的活动中声明全局可运行变量。

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

然后在要读取的节点上添加值事件侦听器。 在回调onDataChange中检查快照是否不存在且runnable变量为null,设置计时器。

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) { }

}