Quan una empresa necessita migrar dades entre bases de dades de Firestore —ja sigui per un canvi de projecte, la creació d'un entorn de desenvolupament o una estratègia de còpia de seguretat— el procés sembla senzill: copiar i enganxar. Tanmateix, la realitat és molt més complexa. Firestore no emmagatzema la informació en una estructura plana; els documents poden contenir subcol·leccions niuades, i aquestes al seu torn altres subcol·leccions. Ignorar aquesta jerarquia provoca transferències incompletes que posen en risc la integritat de les dades. En aquesta guia completa aprendràs a transferir dades de Firestore entre bases de dades conservant tota l'estructura, incloent subcol·leccions de qualsevol profunditat, des d'una perspectiva tècnica i empresarial.
A Q2BSTUDIO, com a empresa de desenvolupament de programari i tecnologia, entenem que la migració de dades no és només un moviment tècnic, sinó una decisió estratègica que afecta la continuïtat del negoci. Tant si necessiteu aplicacions a mida amb Firestore com a backend o voleu integrar solucions d'intel·ligència artificial i ciberseguretat a la vostra infraestructura cloud, dominar aquestes transferències és essencial.
El repte de les subcol·leccions
Quan s'obté un document de Firestore, el SDK no porta automàticament les seves subcol·leccions. Per exemple, una col·lecció 'Categories' conté documents amb camps com 'nom', però també pot tenir una subcol·lecció 'Subcategories', i cada subcategoria al seu torn una altra subcol·lecció 'Elements'. Si només transferiu els documents de nivell superior, perdeu tot el contingut niuat. Aquest és l'error més comú i costós.
Requisits tècnics
Abans de començar, assegureu-vos de tenir Node.js (v12 o superior), el paquet firebase-admin instal·lat i dos projectes de Firebase/Google Cloud: d'origen i de destí. També necessitareu generar claus de compte de servei des de la consola de Firebase (Configuració del projecte > Comptes de servei) i assignar els rols adequats a IAM: per a l'origen, Cloud Datastore Viewer (només lectura); per al destí, Cloud Datastore User (escriptura). Seguir el principi de privilegi mínim protegeix la vostra infraestructura i facilita l'auditoria.
Script bàsic: transferència plana
Un script inicial que recorri una col·lecció i escrigui els documents a la base de dades destí funciona per a dades planes, però ignora les subcol·leccions. El codi típic utilitza admin.firestore(), obté el snapshot de la col·lecció, itera sobre els documents i utilitza batch.set() per escriure en lots de 500 operacions (límit de Firestore). Tanmateix, això no recursa sobre subcol·leccions. Per a una transferència completa necessitem un enfocament recursiu.
Transferència recursiva amb subcol·leccions
La clau és utilitzar listCollections() sobre cada document d'origen per descobrir totes les subcol·leccions. Després, per a cada subcol·lecció, es torna a cridar la mateixa funció de transferència de col·lecció, i així successivament fins als nivells més profunds. Aquest mètode garanteix que es preservi la jerarquia completa. A cada document, a més d'escriure les seves dades, s'itera sobre les subcol·leccions trobades i es transfereixen seguint la mateixa lògica de lots.
Script complet preparat per a producció
Un script robust ha de gestionar: lectura de totes les subcol·leccions de forma recursiva, escriptura per lots respectant el límit de 500 operacions, registre de progrés, captura d'errors i la possibilitat de configurar rutes de col·leccions. A més, s'ha d'executar en dos passos: primer transferir els documents de la col·lecció actual, i després, per a cada document, llistar i transferir les seves subcol·leccions. Això evita problemes de concurrència i garanteix que tots els documents base existeixin abans d'inserir els seus descendents.
Bones pràctiques de seguretat
Mai incloeu les claus de compte de servei al repositori. Utilitzeu variables d'entorn (SOURCE_CREDENTIALS, DEST_CREDENTIALS) i afegiu els fitxers *.key.json al .gitignore. Roteu les claus cada 90 dies i revoqueu les antigues immediatament. Activeu l'auditoria mitjançant Cloud Audit Logs per monitoritzar l'accés. A Q2BSTUDIO apliquem aquestes mesures en tots els nostres projectes de ciberseguretat i cloud.
Solució de problemes freqüents
Si apareix 'Permís denegat', verifiqueu que els rols IAM siguin correctes. Si el lot supera les 500 operacions, l'script ha de partir en lots exactes (comptador mòdul 500). Per a conjunts de dades molt grans, considereu usar l'exportació/importació nativa de Firestore a través de Cloud Storage: gcloud firestore export i import. Una altra opció és l'extensió 'Firestore Import/Export' del mercat de Firebase Extensions, que ofereix una interfície gràfica i còpies de seguretat programades, tot i que amb menys control.
Alternatives per a grans volums
L'exportació mitjançant gcloud és atòmica, ràpida i gestiona índexs compostos, però requereix un bucket de Cloud Storage i comporta costos associats a l'emmagatzematge i trànsit. És ideal per a migracions completes de projectes. L'extensió de Firebase és més amigable per a equips sense experiència en línia d'ordres. Per a entorns que ja utilitzen cloud AWS/Azure, la integració amb els serveis de transferència de dades de cada proveïdor pot ser una opció.
El valor empresarial d'una migració correcta
Una transferència incompleta de dades pot provocar fallades en aplicacions, pèrdua d'informació crítica i retards en els terminis de lliurament. Per a una empresa que desenvolupa aplicacions a mida, la integritat de les dades és un requisit no funcional fonamental. A més, en incorporar capacitats d'intel·ligència artificial o agents IA, la qualitat de les dades d'entrenament depèn directament de migracions fiables. Per això, a Q2BSTUDIO integrem aquestes pràctiques als nostres serveis d'IA i Business Intelligence (Power BI), garantint que les dades flueixin correctament entre entorns.
Automatització i agents IA
Amb l'adopció d'agents IA capaços d'orquestrar processos de migració, les empreses poden reduir el risc humà i accelerar les transferències. Per exemple, un agent pot programar l'execució de l'script, monitoritzar els registres i notificar a l'equip si es produeix un error. A Q2BSTUDIO desenvolupem solucions d'automatització que inclouen aquests agents, com a part de la nostra oferta d'automatització de processos.
Conclusió
Transferir dades de Firestore entre bases de dades no és una tasca trivial. Requereix comprendre l'estructura jeràrquica, implementar recursivitat, gestionar límits d'escriptura i aplicar mesures de seguretat. Amb l'enfocament adequat, la vostra empresa pot realitzar migracions fiables, preservant cada document i subcol·lecció. A Q2BSTUDIO oferim consultoria i desenvolupament per ajudar-vos en aquest procés, des de la planificació fins a l'execució, integrant cloud, IA i ciberseguretat segons les vostres necessitats.



