实时更新应用程序的后端结构建议(Firebase)

时间:2017-12-02 11:43:27

标签: java android mysql firebase firebase-realtime-database

我正在尝试开发一款类似Uber的移动应用程序,这是一款实时更新驱动程序&客户所在地。所以我在这里寻求关于app结构的思考建议。

对于我研究的内容,为了提供快速的实时更新位置,我可能需要使用Firebase等实时数据库作为后端。所以,我想结合两种不同类型的数据库来实现我的想法...

Firebase - 用于实时快速更新用户位置 MySQL - 用于后端api业务逻辑

但是,我没有使用firebase的经验,所以我希望你们都能给出一些建议。我计划只将用户位置坐标信息存储在firebase数据库中,然后从移动应用程序中检索它以实时更新。

我的问题是我不确定我是否应该永久地将这些驱动程序坐标数据保存在firebase数据库中?由于坐标数据不断更新firebase中的更新,因此一旦驱动程序到达目的地,我应该从firebase中删除这些坐标数据。 (不需要保持这些数据持续存在,只有实时数据在firebase上保持变化)

感谢您阅读如此长的问题,如果您在我的应用程序中使用2个不同的数据库,如果您能提醒我任何其他问题,我也会很高兴。

1 个答案:

答案 0 :(得分:1)

您通常会在Firebase中保留驱动程序及其位置列表:

driverlocations
  driver1id: location
  driver2id: location

这意味着您不是添加新数据,而是更新现有数据。因此,您不必担心名单会不断增长。

为了确保您没有关闭应用/停止驾驶的司机的陈旧数据,您可以use Firebase's onDisconnect() handlers to remove the data when they disconnect

现在查询附近司机的这些数据仍然很棘手。你会想要看看GeoFire。我最近解释了为什么需要它以及它如何在这里工作:Sort array by distance near user location from firebase