CaronaBoard / caronaboard

Your car does not need to carry only you:
https://caronaboard.com
54 stars 8 forks source link

Manter consistencia durante atualizaçāo de perfil #67

Closed eduardomoroni closed 7 years ago

eduardomoroni commented 7 years ago

Entendo as limitaçōes que o firebase nos traz. Cheguei num cenário complicado de contornar sem mudar a representaçāo dos dados.

Atualizar perfil: Quando um usuário atualiza seu perfil, precisamos atualizar TODOS os pedidos de carona deste usuário e TODAS as ofertas de carona deste usuário. Problema: O documento que armazena informaçōes de pedidos de carona segue a seguinte estrutura, usando a notaçāo do flow-typed

[rideId: string]: {
   [requestId: string]: {
      profile: {
        name: string,
        contact: {
          kind: string,
          value: string
        }
     }
   }
}

Para eu conseguir atualizar preciso buscar todos os Rides o que me faria retornar TODOS os objetos de carona. Minha sugestāo é inserir o userId dentro do profile.

Alguem teria outra sugestāo?

Anexando imagem para facilitar entendimento: image

eduardomoroni commented 7 years ago

Aconteceu algo semelhante quando tentei buscar Todas os pedidos de carona de um usuário 😅

luismizutani commented 7 years ago

Isto me traz uma dúvida. Para o nosso produto existe alguma vantagem real em usar uma base não relacional?

eduardomoroni commented 7 years ago

Eu havia conversado com @rogeriochaves sobre isso, a ideia de usar o firebase para o MVP foi devido a simplicidade de lidar com autenticaçāo, push notification e ter um banco que poderiamos usar facilmente. A medida que o projeto foi sendo desenvolvido começou a ficar evidente que o modulo de banco de dados do firebase nāo é tāo eficaz para o nosso uso.

eduardomoroni commented 7 years ago

fechando a issue pois o PR já foi mergeado, mas podemos continuar a conversa aqui caso necessario. 🤠

rogeriochaves commented 7 years ago

@eduardomoroni sim, acho que o firebase nos atrapalha bastante na real, seria muito bom trocar pra um relacional.

Mas acho que dá pra reaproveitar o firebase só pras notificações e talvez até pra autenticação, e deixar o relacional pros dados mesmo