Uso do relógio do Firebase para alterações de registro de data e hora

9

Temos um conjunto de dados no Firebase atualizado por vários clientes. Queremos rastrear a última modificação no datetime do conjunto de dados. Não podemos confiar no cliente definindo o modificado em datetime, pois o relógio local pode estar totalmente fora de sincronia.

Existe alguma maneira de ter o registro de data e hora da tag do Firebase em um conjunto de dados com base em seu relógio para rastrear a última modificação?

    
por Kartik 23.10.2012 в 20:38

2 respostas

5

Estamos trabalhando em alguns recursos para dar suporte a isso no momento, mas não temos como fazer isso agora. Note, no entanto, que os IDs criados por "push ()" são ordenados cronologicamente, e nós compensamos a distorção do clock do lado do cliente da melhor maneira possível quando os criamos, então se tudo o que você está tentando fazer é certificar-se de escreve para uma lista ocorrer em ordem, você pode fazer isso com push ().

Eu estaria interessado em saber como você gostaria que esse recurso fosse exibido. Se você tem um segundo, eu gostaria de receber um e-mail para andrew no firebase ...

Atualização: o Firebase agora suporta a definição de registros de data e hora do servidor, além de acessar o horário do servidor diretamente no cliente. Veja a documentação aqui: link

    
por Andrew Lee 23.10.2012 / 21:21
0

Estamos no mesmo barco ... e, mais cedo ou mais tarde, muitos clientes do Firebase terão esse problema, pois é um "novo tipo" de problema que nunca tivemos de enfrentar no antigo "cliente-servidor" dias.

A solução atual ( ainda em produção ) é estimar a diferença de tempo entre o cliente e o NOSSO servidor na inicialização, e eles compensam,
Então - onde tivemos x = new Date () ,
agora é x = ourDateService.now ()

nossa função now () simplesmente faz new Date () + diff

Isso funciona para nós, pois não precisamos de exatidão em milissegundos, e é um aplicativo de página única que é carregado uma vez, para que possamos fazer essa verificação e inicializar nosso serviçoDateService ao carregar, mas essa solução não funcionará todo mundo ( é claro, você pode armazená-lo no localstorage / cookie e revalidar a cada dia mais ou menos ).

    
por oori 27.10.2012 / 02:09