如何使用 Swift 中的条件在 Firebase 中触发通知?

How to trigger a notification in Firebase with a condition in Swift?

我有 2 个应用程序,骑手和 driver(在 Firebase 的同一个项目中)。如果在 Firebase 中设置推送通知,我该如何设置条件?例如,如果骑手请求乘车,则警报会建议 driver 接受或取消。如果 driver 接受请求,则会将 child 添加到数据库中,例如 ref = FIRDatabase.database().reference():

ref.child("riders").child("RydeAccepted").child(usersname).setValue(data)

我该如何设置,以便在发生这种情况时向乘客应用程序发送一条通知,说明请求已添加或删除?

这种可能的结构可能有助于简化问题中的结构

drivers
   -Yuiu9jasjdasd
      name: "driver 1"
   -Huuajwiojiejw
      name: "driver 2"

riders
   -Yij99js9skos
      name: "rider 1"
   -Y090jssiisss
      name: "rider 2"


rider_driver_requests
   -Yuljai8jsid99jsds
      requested_by_rider: "-Yij99js9skos"
      for_driver: "-Yuiu9jasjdasd"
      driver_response: "Pending"
   -Y99mskksmnjndjnsj
      requested_by_rider: "-Y090jssiisss"
      for_driver: "-Huuajwiojiejw"
      driver_response: "Accepted"

在上面的结构中,rider_1 请求了 driver_1 的搭车,但是 driver_1 还没有响应(当他们响应时,driver_response 将从待拒绝或接受)。

rider_2 请求从 driver_2 乘车,driver 两人已经接受。

车手和 driver 都在观察 rider_driver_requests 节点,并且每个人都会收到该节点中添加、更改或删除事件的通知。

在你说 'that node is going to get huge!' 之前,我这样组织的原因是将来,乘客可能不会请求特定的 driver - 他们可能会请求 driver s在一个地区。

因此,该区域内的所有 driver 都希望收到请求通知,以便他们都观察该节点并将其当前位置(例如经纬度)与骑手的位置进行比较谁叫了车。