У меня есть индекс Algolia, связанный с базой данных Firestore через Google Cloud Functions. Когда мой Firestore обновляется, Google Cloud Functions запускает и обновляет мой индекс Алголии. Я использую индекс Алголии для функции поиска в моем приложении, а также для начальной загрузки объектов в мое табличное представление при его первом отображении. Проблема заключается в том, что когда я удаляю свойство из объекта в моем Firestore, я получаю уведомление о том, когда произошло обновление, но не о том, когда произошло обновление индекса Algolia (очевидно, потому что это метод Firestore). Метод, который я использую, заключается в следующем, где у меня есть выходное закрытие bool, которое указывает на успех или нет:
deleteObjectRef.updateData([
"Users": FieldValue.arrayRemove([uid])
]) { err in
if let err = err {
print("Error deleting property: \(err)")
completion(false)
} else {
print("property successfully deleted")
completion(true)
}
}
Когда завершение возвращает значение true, база данных Firestore обновляется, хотя между этим и запаздыванием индекса Algolia во время выполнения облачных функций существует задержка. Я хотел бы перезагрузить свою таблицу, когда будет обновлен индекс Algolia, а не когда база данных Firestore была обновлена, как в настоящее время является моей единственной возможностью. Как перезагрузить данные табличного представления после обновления индекса Алголии? Единственное решение, о котором я могу подумать в данный момент, - это использовать таймер, который запускается, как только я получаю подтверждение об обновлении Firestore, а затем через несколько секунд перезагружает таблицу в надежде, что к этому времени Algolia будет обновлена. Не стремлюсь использовать его, поскольку у него есть свои недостатки ...