GeoFire наблюдающий блок вызывается только один раз в проекте Swift - PullRequest
0 голосов
/ 22 сентября 2018

Это мой упрощенный код для наблюдения GeoFire: проблема в том, что наблюдаемые всегда вызываются только один раз, при начальном наблюдении, однако при вводе новых ключей функция наблюдения работает нормально, но блок завершения не вызывается.

func startObserveNearbyPosts(location: CLLocation) {
        let geoFireQuery = geoFire?.query(at: location, withRadius: 100)

        geoFireQuery?.observe(.keyEntered, with: { (key, _) in
            print("Key entered")
        })

        geoFireQuery?.observeReady {
            print("Observe ready")
        }
    }

1 Ответ

0 голосов
/ 23 сентября 2018

Из документации Geofire :

Иногда вы хотите знать, когда данные для всех ключей initial были загружены с сервера исоответствующие события для этих ключей были запущены.

Таким образом, похоже, что observeReadyWithBlock вызывается только после запуска исходного набора .keyEntered, но не для последующих обновлений(если вы не измените запрос).Конечно, .keyEntered должен вызываться для каждого ключа, который входит в запрашиваемый диапазон.

...