Я занимаюсь разработкой приложения для транспорта.Идея заключается в том, что водитель может воспользоваться услугами, которые клиенты уже попросили.Итак, когда драйвер получает службу от клиента, он удаляет службу из «Анализируемых служб» в базе данных Firebase, у меня есть наблюдатель, который прослушивает, когда служба удаляется, и сообщает клиенту, что его служба была взята, что работает отлично.,
Теперь представьте себе ситуацию, когда водитель пользуется услугой, но клиент не подключается к Интернету в этот момент, поэтому он не будет «слушать» удаленного ребенка, и всякий раз, когда он снова подключается, он не узнает, что его службабыли приняты.Я знаю, что Firebase предлагает «постоянство», но я не совсем уверен, как использовать его в этом конкретном случае.
Это часть моего кода:
RefConductores.child(IDUsuarioActual).child("Servicios Tomados").observe(.childAdded)
{ (snapshot) in
let key = snapshot.value as? String
if key != nil
{
if let i = MisServicios.Instancia.VectorMisServicios.index(where: { $0.Key == key })
{
MisServicios.Instancia.VectorMisServicios.remove(at: i)
Alertas.Instancia.CrearNotificaciones(Tipo: 1)
}
MisServicios.Instancia.CargarMisServicios(IDServicio: key!)
}
}
Это прекрасно работает, тамэто не ошибкаТо, что я пытаюсь выяснить, - как заставить это работать, когда у пользователей нет подключения к интернету.Когда водитель пользуется услугой (начиная с мобильного телефона водителя), в клиентском приложении (на мобильном телефоне клиента) он выполняет представленный код (это прекрасно работает, если клиент правильно подключен к Интернету).Мой вопрос: представьте, что у клиента нет подключения к Интернету, он не сможет слушать «childAdded», и когда он снова подключится к Интернету, ребенок уже будет на узле «Servicios Tomados», но он никогда не узнает оЭто.Как я могу решить эту проблему?
Спасибо всем