我如何像优步一样向最近的应用程序用户发送请求



我想使用Firebase创建一个类似Uber的应用程序。我不理解如何使用服装标记在谷歌地图上显示最近的应用程序用户,以及如何像优步一样同时向所有最近的应用软件用户发送请求。

由于您已经在使用Firebase,因此可以使用Firebase云消息。这显然是一个相当大的功能,可以解决很多子任务,但这里有一个简化的概述:

你有三个参与者:

  1. ;优步用户";客户端应用程序
  2. ";优步司机";客户端应用程序
  3. 您的应用服务器(可以是Firebase Cloud Functions,用于无服务器后端(

数据流可能如下:

  1. ";驾驶员";打开他们的应用程序。这建立了与服务器的连接,并使服务器不断更新其地理位置。

  2. A";用户";打开他的应用程序。这会触发向服务器发送用户地理位置的请求。

  3. 服务器(知道所有驱动程序的实时位置(计算哪些驱动程序靠近用户,并用这些数据响应用户请求。用户客户端应用程序现在可以呈现带有驱动程序位置的地图小部件(为此,您可能会使用类似google_maps_flutter的包(。

  4. 用户点击按钮请求乘坐。这再次触发对服务器的请求。

  5. 服务器接收请求,并使用云消息通知附近的驱动程序。FCM有一种称为数据消息的消息类型,它非常适合于此;您可以发送自定义数据,客户端应用程序将根据需要进行处理。

  6. 驾驶员的应用程序接收此数据消息并呈现UI,显示有可用的乘车。如果驾驶员接受乘坐,则会向服务器发送请求。

  7. 一旦服务器看到";接受乘坐";请求时,它会向所有其他驾驶员发送另一条消息,告知该游乐设施不再可用,并向用户发送一条消息通知该游乐设施已被接受。

正如我所说,这不是一个简单的功能。有几个棘手的部分,比如比赛条件,以及确保只有一名车手接受骑行。但这应该是对如何做到这一点的高层次概述。

最后,这个模式是一个相当不可知的技术;它并不是Flutter特有的。具有该功能的架构可以在几乎任何现代移动框架中这样实现——Flutter只是一个UI框架。

最新更新