FireSync
  • Documentação
  • FireSync.APP
    • Bancos de Dados
      • Criação
        • Autorização de IP's
      • Edição
    • Menus
      • Criação
      • Edição
        • Busca Avançada
        • Header
        • Vinculos
    • Dashboards
    • Conta FireSync
      • Integrações
      • Usuários
      • Permissões
  • Serviços
    • Connector
      • NodeJS Modulo
      • Criação de Conector
      • Edição / Acesso
      • API
    • DBRealTime
      • Cliente Javascript
        • Introdução
        • Versão Atual
        • Instalação / Configuração
        • Conceitos Fundamentais
          • Conexão e Autenticação
          • Referência do Banco de Dados (DatabaseReference)
          • Caminhos (path vs relativePath)
          • Snapshot de Dados (DataSnapshot)
          • Chaves Inválidas
        • Guia Rápido / Uso Básico
        • Referência da API
          • Objeto fireSyncClient
          • Classe DatabaseReference
          • Classe DataSnapshot
        • Listeners em Tempo Real (onValue, off)
        • Eventos Públicos (on, off)
        • Tratamento de Erros
        • Exemplo Completo
      • Cliente NodeJS
        • Introdução
        • Instalação
        • Conceitos Fundamentais
          • Inicialização e Configuração
          • Cabeçalho Origin (Obrigatório)
          • Conexão, Estado e Reconexão
          • Autenticação (TOKEN)
          • Referência (DatabaseReference) e Caminhos
          • Snapshot de Dados (DataSnapshot)
          • IDs de Requisição (Uso Interno)
          • Chaves Inválidas
        • Guia Rápido / Uso Básico
        • Referência da API
          • Objeto fireSyncClient
          • Classe DatabaseReference
          • Classe DataSnapshot
        • Listeners em Tempo Real (onValue, off)
        • Eventos Públicos (on, off)
        • Tratamento de Erros
  • FireSync.Tools
    • FireSync Tools
    • XmlToJson
    • QRCode
    • Date
    • PIX
      • QRPIX
      • PIX
  • API Integrações
    • Integrações
    • Entry
    • Query
Fornecido por GitBook
Nesta página
  1. Serviços
  2. DBRealTime
  3. Cliente Javascript

Listeners em Tempo Real (onValue, off)

Use onValue para receber dados iniciais e atualizações. Sempre guarde a função unsubscribe retornada e chame-a quando não precisar mais do listener.

JavaScript

const counterRef = fireSyncClient.ref('liveCounter');
let unsubscribeCounter = null;

function startCounting() {
    if (unsubscribeCounter) return; // Já está escutando
    unsubscribeCounter = counterRef.onValue(
        snapshot => {
            document.getElementById('counter').innerText = snapshot.val() ?? 0;
        },
        error => {
            console.error("Erro no listener do contador:", error);
            stopCounting(); // Tenta parar se der erro
        }
    );
}

function stopCounting() {
    if (unsubscribeCounter) {
        unsubscribeCounter();
        unsubscribeCounter = null;
        console.log("Listener do contador parado.");
    }
}

// Iniciar: startCounting();
// Parar: stopCounting();
  • O callback (handleDataUpdate no exemplo) é chamado uma vez com os dados iniciais (se existirem) e depois a cada mudança detectada pelo servidor.

  • É crucial chamar a função unsubscribe retornada por onValue quando você não precisar mais dos dados (por exemplo, quando um componente da UI é destruído ou o usuário navega para outra página) para evitar vazamentos de memória e tráfego de rede desnecessário.

  • ref.off() é útil para limpar todos os listeners de um caminho de uma vez.

AnteriorClasse DataSnapshotPróximoEventos Públicos (on, off)

Atualizado há 1 mês