Categorías
Angular Firebase Sin categoría

Cómo definir una fecha en hora local para firebase sin morir en el intento

Según Wikipedia, El tiempo universal coordinado o UTC es el principal estándar de tiempo por el cual el mundo regula los relojes y el tiempo. Es uno de los varios sucesores estrechamente relacionados con el tiempo medio de Greenwich (GMT).

Firebase entonces siempre nos entrega las horas en UTC. El problema es que si tienes alguna funcionalidad que dependa de la hora local, jamás va a coincidir la hora que Firebase te da, con la de tu zona horaria. Tendrás que procesarla antes de usarla.

A Colombia por ejemplo, le corresponde la zona horaria UTC-5 lo que quiere decir que nos encontramos 5 horas por detrás del meridiano de Greenwich. Aquí te va un ejemplo de cómo ajustar la hora para que coincida con tu hora local y no mueras en el intento:

En este ejemplo, necesito asignar a la fecha de inicio (variable inicio) el día de hoy a primera hora de la mañana (12:00:00 a.m.). Y a la fecha de fin (variable fin) el día de hoy a ultima hora del día (11:59:59 p.m.). Entonces:

Defino una variable para guardar cada una de las fechas en formato UTC que es el que me entrega Firebase. Estas variables tienen el mismo valor pero más delante las utilizaremos de diferente manera:

const inicioUtc = new Date();
const finUtc = new Date();

Seteo en cada variable las horas que necesito, de manera que la de inicio corresponda a la primera hora de la mañana y la de fin corresponda a la última de la noche:

inicioUtc.setHours(0, 0, 0, 0);
finUtc.setHours(23, 59, 59, 999);

A cada una de las fechas le sumo las 5 horas de diferencia que tenemos con la zona horaria UTC:

const inicio = new Date(inicioUtc.getTime() + 5 * 60 * 60 * 1000);
const fin = new Date(finUtc.getTime() + 5 * 60 * 60 * 1000);

Y listo!

Ten en cuenta que si haces test de manera local, las cuentas no te van a dar.

Categorías
Cloud Firebase Google Cloud

Cómo configurar los backups de Firestore desde la consola de gcloud

Antes que nada, toda la documentación oficial está en: https://firebase.google.com/docs/firestore/backups

Instalar la consola para Google Cloud

Para comenzar, se requiere tener instalada la consola de gcloud. En este link https://cloud.google.com/sdk/docs/install?hl=es-419 podrás descargar los instaladores y ver las instrucciones para la instalación. Una vez instalada, se podrán configurar los proyectos.

Categorías
Cloud Firebase Google Cloud

Como crear un bucket en Google Cloud

Categorías
Cloud Firebase Google Cloud

Como correr el Emulador de Firebase con datos del prod y mover datos entre proyectos

Lo primero que diré es que Google Cloud Console tiene herramientas 2 herramientas importantes:

Firestore > Import/Export: para hacer backups y restablecer los datos de firestore.

Cloud Storage: Para administrar los archivos de los backups.

Categorías
Angular Dev Firebase

Cómo resolver el error @firebase/firestore: Firestore (8.2.2): FIRESTORE (8.2.2) INTERNAL ASSERTION FAILED: Unexpected state en Angular con Firebase

El error @firebase/firestore: Firestore (8.2.2): FIRESTORE (8.2.2) INTERNAL ASSERTION FAILED: Unexpected state no está muy bien documentado y se presenta cuando uno esta depurando una app en Angular con Firebase, utilizando Google Chrome. Está relacionado con la opción enablePersistence y se resuelve abriendo la consola de depuración del navegador y en la pestaña Application, checkear la opción IndexedDB y borrar los datos.

Categorías
Angular Dev Firebase TypeScript

Cómo contar registros fácil y rápido en firebase

Partiendo de que ya se tenga un proyecto en Typescript con Firebase configurado, basta con crear la siguiente función:

Categorías
Angular Dev Firebase TypeScript

Adaptador para un selector de fechas en Angular

Firebase entrega TimeStamps, no fechas, por lo que toca hacer la conversión respectiva. Pero es posible implementar una directiva que resuelva este problema así:

Categorías
Angular Cloud Dev Firebase TypeScript

Cómo utilizar el emulador de Firebase sin sufrir en el intento

Este post tiene como origen divertidos problemas que hemos tenido. Recomendamos solo habilitar los Emuladores necesarios. Hemos tenido algunos líos, en especial con el Emulador Pub/Sub.

Para comenzar, es necesario tener instalado Node.js 10.13 o mayor y verificar que se tiene la última versión de firebase-tools con el siguiente comando:

npm install -g firebase-tools

Asumiendo que firebase ya está corriendo y funcionando, entonces lo siguiente es inicializar el emulador:

Categorías
Angular Cloud Dev Firebase TypeScript

Como convertir un archivo .kmz a json en javascript

Como para casi cualquier cosa, existe un paquete para eso; parse2-kmz, disponible en https://www.npmjs.com/package/parse2-kmz. Utilizarlo es muy simple:

Categorías
Cloud Firebase

Como ingresar a Firebase y activar el plan pago

Este post asume que su programador favorito ya le debe haber compartido el proyecto de Firebase. Debe haberle llegado un correo para que confirme que sí quiere que lo agreguen a ese proyecto. Este paso debe llevarse a cabo antes de que pueda ver el proyecto en su consola de firebase

Para activar el plan pago (Blaze) de su proyecto de Firebase, lo primero es acceder a firebase.google.com. En la parte superior derecha encontrará el botón Go to console (ir a la consola). Haga clic ahí para entrar. Deberá iniciar sesión con el mismo usuario al que le enviaron la confirmación: