Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

143
Visualizações
Swift - GeoFire removeObserver no funciona, buscando una solución, por favor

Descubrí que tanto removeObserver como .removeAllObservers() no funcionan en GeoFire, esperando otra solución para "salir" de esta observación (que sigue cargándose para siempre)

 var newRefHandle: FIRDatabaseHandle? var gFCircleQuery: GFCircleQuery? func findFUsersInOnePath(location: CLLocation, radius: Int, indexPath: String, completion: @escaping () -> ()){ var ids = 0 let geofireRef = usersRef.child(indexPath) if let geoFire = GeoFire(firebaseRef: geofireRef) { gFCircleQuery = geoFire.query(at: location, withRadius: Double(radius)) newRefHandle = gFCircleQuery?.observe(.keyEntered, with: { (key, location) in // if key fit some condition then perform some other firebase call to other database(async), afterwards: ids += 1 if (ids >= 3) { //RemoveObersver not working below... self.gFCircleQuery?.removeObserver(withFirebaseHandle: self.newRefHandle!) completion() } }) //I find that observeReady gets call right away despite we haven't complete code above gFCircleQuery?.observeReady({ completion() }) }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Supongo que todavía está recibiendo algunos eventos .keyEntered después de la llamada a removeObserver , que en realidad es de esperar.

GeoFire realiza una sola consulta para obtener todas las claves dentro del rango de su consulta y luego llama a su devolución de llamada .keyEntered para cada una de estas claves. Incluso si llama a removeObserver para la primera clave, GeoFire continuará llamando a la devolución de llamada .keyEntered con el resto de las claves que ya obtuvo de la base de datos.

Por esta razón, recomendaría eliminar el observador dentro del bloque listo para la consulta. El comportamiento no cambiará cuando lo haga, pero tendrá más sentido ya que se llama a ese bloque listo cuando GeoFire termina de informarle sobre el lote de claves.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda