Обновить таблицу после обновления Algolia через Firestore и Google Cloud Function - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть индекс 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 будет обновлена. Не стремлюсь использовать его, поскольку у него есть свои недостатки ...

...