Qué es esto
Trae a la Suite 101 lo que hoy vive en Firestore (CONTA MASTER): negocios, cuentas, clientes, proveedores, proyectos, sus productos —que aquí se llaman ítems—, movimientos y gastos recurrentes.
Se conservan los ids. Un producto_id viejo sigue apuntando
al mismo ítem. Los PIN no se migran: cada quien vuelve a fijar el suyo con
«olvidé mi PIN». No se inventa historial: la etapa que un ítem ya traía se
conserva, pero no se le fabrican avances con fechas que nunca ocurrieron.
Escribe por POST /admin/importar, que es una puerta de servicio:
solo el superadmin, y a propósito por debajo de los permisos normales. Correrla dos veces
no duplica nada.
1 · Entrar a la API
2 · Sacar los datos de Firestore
El cotizador no guarda colecciones: guarda un solo documento con todo el árbol adentro —clientes, sus proyectos, sus cotizaciones y las versiones de cada una—, más la configuración de la empresa y la lista de precios. Así que aquí no hay que pedir nada colección por colección: se baja ese documento y ya.
Abre el cotizador, entra, abre la consola del navegador (F12 → Console) y pega esto. La receta saca la configuración de Firestore de la propia página, así que aquí no hay ninguna llave escrita.
Se pide colección por colección, con los mismos filtros que usa CONTA MASTER.
Sus reglas no dejan leer una colección entera —la de negocios exige que tu uid esté en
miembros_uids, y Firestore no puede demostrarlo sin filtro—, así que una lectura sin
filtrar devuelve vacío aunque los datos estén ahí. De usuarios solo sale tu propio
documento: eso es la regla, no el filtro. Los demás miembros se dan de alta después con
POST /admin/orgs/:o/miembros.
Firebase solo tenía autorizado el dominio de CONTA MASTER (conta-master.netlify.app),
y la lectura se hacía desde ahí, pegando esto en la consola del navegador. Ese sitio se
retiró el 24-sep-2026 con el resto de Netlify: la mudanza ya se hizo y esta página queda
como registro de cómo se hizo.
Descarga un archivo JSON. Nada sale de tu navegador hacia ningún lado: el archivo se queda en tu computadora y de ahí lo subes aquí.
El cotizador no sabe que los negocios existen: la suite guarda clientes y cotizaciones por negocio, así que hay que decir a cuál. Se pregunta en vez de adivinarlo: adivinar mal deja los clientes colgando del negocio equivocado.
3 · Ensayo
Escribe de verdad dentro de una transacción y la deshace al terminar. Mide exactamente lo mismo que la corrida buena, incluidas las validaciones del esquema, y no deja nada.
3.5 · Las fotos y las versiones viejas
Las cotizaciones apuntan a archivos que no viajan en el documento: las fotos de los muebles y el detalle de las versiones archivadas viven en Firebase Storage y sólo se referencian por dirección. La mudanza de arriba trae la cotización; esos archivos se quedan allá. Apagar Firebase los borraría.
Esto los baja y los guarda en la suite, y reescribe la dirección dentro de la cotización. Va por tandas porque son muchos: el botón sigue llamando hasta que no quede ninguno, y se puede interrumpir — lo ya mudado se queda mudado y al volver sigue donde iba.