通知客户端服务器已在firebase中完成处理

时间:2015-04-29 06:45:38

标签: java angularjs firebase

对于我们的申请,

  • 我们在应用程序中使用AngularJS作为我们的前端框架和服务器端的Java。
  • 我们希望将我们的应用程序与Firebase集成,但我们有以下问题。

现在,让我们假设以下情况:

  • 客户端更改存储在任何Firebase网址
  • 的对象
  • 服务器侦听该更改并开始处理该对象
    • 我们可以假设这个过程需要5到10秒。
  • 但是,客户端在不等待服务器响应的情况下更改其状态。

我们的问题是:服务器如何通知客户完成处理?

请指导我们如何实施此功能。 Firebase中是否有内置机制来执行此操作?

1 个答案:

答案 0 :(得分:1)

就像服务器侦听数据库中的更改一样,客户端也可以这样做。当客户端更改数据库中的对象时,它可以创建一个新属性,专门用于服务器在完成处理时发出信号。然后,客户端侦听对该属性的更改,服务器在完成处理后对其进行更改。您的数据结构可能如下所示:

{
  serverjobs: {
    job1: {
      input: {
        // the client's input for the job
      },
      finished: false
    },
    job2: {
      input: {
        // the client's input for the job
      },
      output: {
        // the server's output for the job
      }
      finished: true
    }
  }
}

服务器将侦听serverjobs,并在客户端添加时开始处理作业。客户端提供服务器对每个作业所需的任何数据input。客户端还会收听作业的finished值。当服务器完成作业时,它会将finished值设置为true,并将作业的结果提供为output。客户注意到finished值的更改,可以采用output并采取相应行动。