Firebase Offline Store - Consulta não retornando alterações na loja online

Estou a usarFirebase com a capacidade offline definida como true.

let ref = FIRDatabase.database().referenceWithPath(“my data”).child(“my users id”)
scoresRef.keepSynced(true)

Esse caminho também mantém Synced configurado como true, pois, sem isso, as alterações no banco de dados não são vistas no aplicativo imediatamente, pois ele está usando o cache local.

Tenho outro nó / caminho de nível superior no meu aplicativo que desejo pesquisar - contendo outros usuários.

Quero usar uma consulta SingleEvent e encontrar um endereço de e-mail. Estou fazendo isso via

studios.queryOrderedByChild("email").queryEqualToValue(email).observeSingleEventOfType(.Value, withBlock: { snapshot in  // etc

Consigo encontrar o nó, mas continuo recebendo a versão em cache local e não a mais recente na loja online do firebase.

Se eu fizer algumas alterações no nó on-line, não as recupero novamente na busca.

Se eu alterei minha busca para um tipo de monitor, ou seja,

studios.queryOrderedByChild("email").queryEqualToValue(email).observeEventType(.Value, withBlock: { snapshot in  // etc

Pego o nó do cache local primeiro e depois a versão atualizada online também.

Prefiro usar a busca SingleEvent, mas não quero monitorar o nó inteiro dos usuários com keepSynced, pois é um nó de alto nível e não quero manter todos esses dados localmente, pois não estão diretamente relacionados ao usuário .

Uma correção que encontrei antes da consulta única foi adicionar .keepSynced (true) e, no bloco de conclusão, adicionar .keepSynced (false). Não sei ao certo quanto do nó foi baixado e foi possível usar a busca do monitor em vez do singleEvent.

Devo apenas usar o monitorEvent ou existe uma maneira melhor de usar o SingleEventFetch que vá para a loja online e em vez de apenas retornar meu nó local.

PS Estou online e isso é confirmado via

var connectedRef = FIRDatabase.database().referenceWithPath(".info/connected")
connectedRef.observeEventType(.Value, withBlock: { snapshot in
    let connected = snapshot.value as? Bool
    if connected != nil && connected! {
        println("Connected")
    } else {
        println("Not connected")
    }
})

obrigado

questionAnswers(0)

yourAnswerToTheQuestion