Executando verificação de segurança...
1

@luansemz muito bom seu projeto cara! Parabéns.

Fiz algo parecido aqui na empresa, usamos o firebase faz 6 anos, e encontramos algumas pedras que nos fizeram criar nossa lib intermediária. Vou tentar compartilhar dois pontos que solucionamos.

Consistência.

Toda vez que chamamos um documento, fazemos da seguinte forma ex:

    db.users.get({where: []})

O mais importante é como os dados chegam.

imagine que temos dois usuários criados em versões diferentes do software

{
    name: 'Rafael',
    age: 20
},
{
    name: 'Maria',
    age: 30
    adress: {
        street: 'Baker Street'
    }
},

Em nossa lib ele iria criar os campos que faltam quando fosse carregando no front, para nao causar bugs

{
    name: 'Rafael',
    age: 20,
    adress: {
        street: '' // propriedade criada
    }
},
{
    name: 'Maria',
    age: 30
    adress: {
        street: 'Baker Street'
    }
},

Claro que também temos a rotina de normalizar os dados no banco, este artifício é apenas para garantir... vai que dá merda né kkk

Segmentação de documentos

outra coisa que nossa lib faz é segmentar documentos de acordo com a permissão do usuário.

Quando eu faço a mesma chamada

    db.users.get({where: []})

Ele só trará os usuários que você possui a permissão de ler (não é permissão dos rules, se só tiver no rules, pode quebrar a aplicação), por exemplo, os usuários da sua empresa.

Isto é feito com um outro where que já está interno neste meu db.users.get, ele já filtra somente os usuários que pertencem a mesma organização.

Fim

Bem, poderia ficar falando aqui o dia inteiro sobre algumas formas e malabares que fazemos no firebase para conseguir uma performance e qualidades incríveis... mas para não chatear vocês, por hoje é só.

Carregando publicação patrocinada...