02/12/2017 Development / java script

Firebase é bom pra caraaaaaaaleo, mas uma coisa que falta é ter JOIN mais facilmente entre as coleções.

Tem um projetinho chamado normalizeCollection de um carinha lá do time do angular firebase, mas só funciona pra versões 1.x alguma coisa do firebase, como eu estou usando a versão 3, eu me fudi!

Então eu fiz meu próprio normalize.

Eu tenho 4 bases que precisam ser juntadas.

Clientes, Pessoas, Credores, Titulos

Primeiro eu consulto todos os meus títulos, e cada título tem cliente, credor e operador(que é a base Pessoas)

Olha como ficou a primeira versão do script

var ref = firebase.database().ref();

var refPessoas = ref.child("pessoas");

var refClientes = ref.child("clientes");

var refCredores = ref.child("credores");

ref.child("titulos").orderByChild('codigoOperador').on('child_added', snapshot => {

var codigoOperador, codigoCliente, codigoCredor;

var obj = {};

obj = snapshot.val();

codigoOperador = obj.codigoOperador;

codigoCliente = obj.cnpjCliente || obj.cpfCliente;

codigoCredor = obj.cnpjCredor;

var NormalizedCollection = (ref, childKey, keyValue, obj) => {

ref.child(childKey).once('value').then(resp => {

obj[keyValue] = resp.val();

this._$scope.$apply();

});

};

NormalizedCollection(refPessoas, codigoOperador, 'Operador', obj);

NormalizedCollection(refClientes, codigoCliente, 'Cliente', obj);

NormalizedCollection(refCredores, codigoCredor, 'Credor', obj);

this.data.push(obj);

})

Acho que ficou uma bosta, mas funcionou ! Espero que sirva de ideia