Guia Rápido / Uso Básico


const fireSyncClient = require('firesync-db-client');
const myJwt = process.env.FIRESYNC_TOKEN;
const myOrigin = process.env.FIRESYNC_ORIGIN; 

if (!myJwt || !myOrigin) {
    console.error("Erro: Token ou Origin não definidos nas variáveis de ambiente.");
    process.exit(1);
}

async function main() {
    console.log("Inicializando FireSync Client...");
    try {
        fireSyncClient.initialize({ s: myJwt, origin: myOrigin });
    } catch (initError) {
        console.error("Falha na inicialização:", initError);
        process.exit(1);
    }

    // Ouvir eventos de estado
    fireSyncClient.on('state_changed', (newState) => console.log(`[APP EVENT] Estado: ${newState}`));
    fireSyncClient.on('error', (err) => console.error(`[APP EVENT] Erro: ${err.message}`));
    fireSyncClient.on('disconnected', (details) => console.warn(`[APP EVENT] Desconectado: Code=${details.code}, Limpo=${details.wasClean}`));

    try {
        console.log("Conectando...");
        await fireSyncClient.connect(); // Espera conectar e autenticar
        console.log("Conectado e Autenticado!");

        const statusRef = fireSyncClient.ref('service/node_client/status');

        console.log("Definindo status...");
        await statusRef.set({ // set agora retorna Promise que espera confirmação
            state: 'online',
            pid: process.pid,
            lastUpdate: Date.now()
        });
        console.log("Status definido.");

        console.log("Lendo status...");
        const snapshot = await statusRef.get(); // get agora retorna Promise que espera resposta
        if (snapshot.exists()) {
            console.log("Status lido:", snapshot.val());
        } else {
            console.log("Status não encontrado.");
        }

        // Desconecta após o teste
        console.log("Desconectando...");
        fireSyncClient.disconnect();

    } catch (error) {
        console.error("Erro durante a execução:", error);
        // Tenta desconectar em caso de erro também
        if(fireSyncClient.getConnectionState() !== 'disconnected') {
             fireSyncClient.disconnect();
        }
    }
}

main();

// Mantém o processo rodando um pouco para ver logs de desconexão (se houver)
// Em uma aplicação real, você manteria o processo rodando pelo tempo necessário.
// setTimeout(() => { console.log("Encerrando script de exemplo."); }, 5000);

Atualizado