Ambas as abordagens têm os seus méritos, e a escolha entre elas depende de fatores como a complexidade do projeto, a necessidade de manter os dados sincronizados entre dispositivos, e as preferências de desenvolvimento. Vou te fornecer algumas informações que podem ajudar na escolha entre Room Database (SQLite) + Firebase ou usar apenas o Firebase.
Usando Room Database + Firebase
Offline-First: O Room Database permite um desenvolvimento "offline-first", onde o aplicativo pode funcionar totalmente offline e sincronizar quando a conexão for restabelecida. Isso pode ser essencial em eventos onde a conectividade pode ser instável.
Performance: A leitura de dados locais geralmente é mais rápida do que a leitura de dados online, o que pode resultar em uma melhor experiência do usuário.
Complexidade: Implementar a sincronização de dados entre local e nuvem pode ser complexo, especialmente quando há conflitos de dados que precisam ser resolvidos.
Usando apenas Firebase
Real-Time: O Firebase permite sincronização de dados em tempo real entre dispositivos, o que é muito útil se o status das pulseiras precisar ser compartilhado entre diferentes dispositivos de forma imediata.
Desenvolvimento Simplificado: Não precisar gerenciar um banco de dados local pode simplificar o desenvolvimento, principalmente se a lógica de sincronização de dados for complexa.
Custo: Dependendo do volume de leituras e escritas, o Firebase pode ter custos associados, e o uso exclusivo do Firebase pode aumentar esses custos.
Recomendações
Estratégia Híbrida: Para muitos aplicativos, uma estratégia híbrida que utiliza tanto o Room Database quanto o Firebase pode oferecer o melhor dos dois mundos. Os dados são armazenados localmente para acesso rápido e funcionamento offline, e sincronizados com o Firebase para manter a consistência entre dispositivos.
Conflitos de Dados: Independentemente da estratégia escolhida, é importante considerar como os conflitos de dados serão resolvidos, especialmente se múltiplos dispositivos podem modificar os dados.
Teste de Conexão: Mesmo optando por uma estratégia somente Firebase, é útil implementar uma lógica que verifica se o dispositivo está online antes de tentar realizar operações que requerem conexão, informando o usuário quando o dispositivo está offline.
Considerando o seu cenário de pulseiras para eventos, onde a confiabilidade e a rapidez na leitura de dados são cruciais, e a conectividade pode ser um problema, uma estratégia híbrida pode ser a mais adequada. Você pode continuar usando o Room Database para armazenar e ler os dados localmente e usar o Firebase para sincronizar os dados entre dispositivos quando a conexão estiver disponível. Isso também pode facilitar o manejo de situações onde múltiplos dispositivos necessitam acessar e modificar o status das pulseiras em tempo real.