Realizado

Programar Cloud Functions no Firebase para fazer integração de dados no Firestore

Publicado em 10 de Novembro de 2019 dias na TI e Programação

Sobre este projeto

Aberto

Possuo uma base de dados no Firebase Firestore com vários documentos e collections aninhados. Trata-se de uma base de dados sobre cursos EAD.
Este projeto consiste em programar 3 Cloud Functions (CF) para executar algumas tarefas de pegar dados de documentos aninhados e trazer para o documento atual (que está sendo cadastrado através do PainelAdmin do aplicativo) e para propagar dados do documento atual para outros documentos após preenchida alguma condição booleana.

O caminho e "aninhamento" das collections que serão tratadas nesse projeto são:
user(raiz)/Cursos/volumes/blocos
Em linhas gerais a Cloud Function deve ser executada quando o campo "completado" de um documento "bloco" mudar de False para True (o que é feito pelo front). A CF deve fazer o seguinte:
1. Somar +1 no valor atual do campo "nBlocosCompletados" do documento "volume" onde o "bloco" está dentro.

Por exemplo: existe um doc chamado vol1 com um campo nBlocosCompletados=4, e dentro desse vol1 existe uma collection chamada blocos com um doc chamado bloco1. Quando o campo "completado" em bloco1 mudar de False para True, a CF deve somar +1 em nBlocosCompletaodos de vol1, tornando este valor igual a 5.
2. Somar o valor do campo "horasEstudadas" do documento "bloco" no campo "horasEstudadas" do seu "volume" pai.
Por exemplo: o campo "completado" de um "bloco" mudou de False para True. Quando isso acontecer o campo horasEstudadas dentro do bloco vai ter um valor do tipo "number", que chamaremos de "x".
A CF deve pegar esse valor "x" e somar ele ao valor previamente existente no "volume" pai deste bloco. Assim, se no campo "horasEstudadas" do "volume" havia um número y, a CF deve somar x+y e gravar o novo valor.
3. Realizar estas mesmas duas operações acima nos campos "nBlocosCompletados" e "horasEstudadas" dentro do documento correspondente na collection "Cursos".

Contexto Geral do Projeto

Possuo uma base de dados no Firebase Firestore com vários documentos e collections aninhados. Trata-se de uma base de dados sobre cursos EAD. Este projeto consiste em programar 3 Cloud Functions (CF) para executar algumas tarefas de pegar dados de documentos aninhados e trazer para o documento atual (que está sendo cadastrado através do PainelAdmin do aplicativo) e para propagar dados do documento atual para outros documentos após preenchida alguma condição booleana. O caminho e "aninhamento" das collections que serão tratadas nesse projeto são: user(raiz)/Cursos/volumes/blocos Em linhas gerais a Cloud Function deve ser executada quando o campo "completado" de um documento "bloco" mudar de False para True (o que é feito pelo front). A CF deve fazer o seguinte: 1. Somar +1 no valor atual do campo "nBlocosCompletados" do documento "volume" onde o "bloco" está dentro. Por exemplo: existe um doc chamado vol1 com um campo nBlocosCompletados=4, e dentro desse vol1 existe uma collection chamada blocos com um doc chamado bloco1. Quando o campo "completado" em bloco1 mudar de False para True, a CF deve somar +1 em nBlocosCompletaodos de vol1, tornando este valor igual a 5. 2. Somar o valor do campo "horasEstudadas" do documento "bloco" no campo "horasEstudadas" do seu "volume" pai. Por exemplo: o campo "completado" de um "bloco" mudou de False para True. Quando isso acontecer o campo horasEstudadas dentro do bloco vai ter um valor do tipo "number", que chamaremos de "x". A CF deve pegar esse valor "x" e somar ele ao valor previamente existente no "volume" pai deste bloco. Assim, se no campo "horasEstudadas" do "volume" havia um número y, a CF deve somar x+y e gravar o novo valor. 3. Realizar estas mesmas duas operações acima nos campos "nBlocosCompletados" e "horasEstudadas" dentro do documento correspondente na collection "Cursos". A tarefa precisa ser completada em Node.js e o código deve ser comentado, de modo a outra pessoa entendê-lo facilmente. Após terminado deve ser publicado num repositório privado no Github, então você precisa me passar o seu username no Girhub.

Categoria TI e Programação
Subcategoria Programação de Apps para Android, iOS e outros
Qual é o alcance do projeto? Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Não se aplica
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: Não estabelecido

Habilidades necessárias