Skip to content

Instantly share code, notes, and snippets.

@XixoWreden
Last active June 24, 2020 13:04
Show Gist options
  • Save XixoWreden/8a27d4643905c34605275a23f493fe5c to your computer and use it in GitHub Desktop.
Save XixoWreden/8a27d4643905c34605275a23f493fe5c to your computer and use it in GitHub Desktop.
Valioso pinche Método para actualizar un arreglo de Reference o Referencias en Firestore
const listaProyectos = []
const listaDepen = []
db.collection('proyectos').get().
then(res => {
res.forEach(doc =>{
let proyecto = doc.data()
proyecto.id = doc.id
listaProyectos.push(proyecto)
});
})
console.log(listaProyectos);
db.collection('dependencias').get().
then(res => {
res.forEach(doc =>{
let dep = doc.data()
dep.id = doc.id
listaDepen.push(dep)
});
})
console.log(listaDepen);
setTimeout(function(){
//GUARDAR LO QUE NO TIENEN NADA
var config = require('./dependencias.json');
var listsda = new Array()
config.dependencias.forEach( elemRela => {
// console.log(elemRela)
let findP = buscarProyectoForSDATOOL(elemRela.sda)
// console.log('PROYECTO ENCONTRADO:::', findP[0].id)
let findDe = buscarDependenciaForIDJIra(elemRela.Issueid)
// console.log('DEPENDENCIA ENCONTRADO:::', findDe[0].id)
if(findP.length > 0 && findP[0].active){
console.log('PROYECTO ENCONTRADO:::', findP[0])
console.log('DEPENDENCIA ENCONTRADO:::', findDe[0])
// console.log('PROYECTO ENCONTRADO:::', findP[0].id)
// console.log('DEPENDENCIA ENCONTRADO:::', findDe[0].id)
agregarDepAProyecto(findP[0].id,findDe[0].id)
}
});
}, 4000);
function buscarProyectoForSDATOOL(sda){
let sdatool = sda.split('-')
let sdaDiv = sdatool[sdatool.length-1]
if(sdaDiv != null && sdaDiv != ""){
let listaPro = listaProyectos.filter(item => item.sdatool === sdaDiv)
return listaPro
}else{
console.log("---- 1 VACIO -----")
return []
}
}
function buscarDependenciaForIDJIra(idJira){
let listadep = listaDepen.filter(item => item.idJira === idJira)
return listadep
}
async function agregarDepAProyecto(idPro, idDep){
console.log('ID PROYECTO ----------',idPro)
// let listaDepForProyect = []
// let buscarProyecto = await db.collection('proyectos').doc(idPro).get().then( doc => {
// console.log(doc.id)
// console.log('LISTA Dependencias',doc.data().dependencia)
// // listaDepForProyect = doc.data().dependencia
// const docDepCreada = db.collection("dependencias").doc(idDep)
// // listaDepForProyect.push(docDepCreada)
// // console.log(listaDepForProyect)
// })
let guardarDepEnProyecto = await db.collection('proyectos').doc(idPro).update({
dependencia: firebase.firestore.FieldValue.arrayUnion(db.collection("dependencias").doc(idDep))
}).then(()=>{
console.log('PRROYECTO EDITADOO')
})
}
@XixoWreden
Copy link
Author

El huevo que cuesta encontrar este pinche método para agregar más Referencia al Firestore.

Primero creas la referencia con:
db.collection("dependencias").doc(idDep)
Después la agregas a la chingada función
firebase.firestore.FieldValue.arrayUnion(db.collection("dependencias").doc(idDep))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment