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:

Categorías
Cloud Google Cloud Wordpress

Como editar el archivo php.ini en WordPress en Google Cloud

Este post asume que usted sabe meterse a la consola SSH de una instancia de VM de Google Cloud y le garantiza que se va a sentir como Neo en la Matrix. Ahí le va:

Cuando es necesario modificar algún parámetro del archivo php.ini, como max_input_time, memory_limit o max_execution_time, basta con entrar a la consola SSH en su instancia de Google Cloud. Allí se puede abrir el archivo en el editor nano (incorporado en la terminal) ejecutando el siguiente comando:

Categorías
Angular Consolas / Bash Dev Firebase

Como testear las funciones de firebase localmente (cloud functions)

Esta es una de esas cosas que se me olvidan, para variar. El problema es que la busco como no debe ser. Realmente lo que debería buscar es «Firebase Prueba funciones de forma interactiva».

Para ahorrarme la siguiente búsqueda, la documentación oficial de Firebase está aquí: https://firebase.google.com/docs/functions/local-shell?hl=es

Para resumir el asunto, suponiendo que es una función callable, lo que toca hacer, estando en el folder functions, es:

firebase functions:shell
nombreDeLaFuncio({'foo': 'bar'})

Pero no me crean a mi. Vayan a ver la documentación oficial!

Categorías
Angular Cloud Dev Firebase

Estructura de archivos para firebase functions en Angular

Creo que las funciones están hechas para lidiar con muchos panoramas, pero que hay 3 casos a destacar:

Categorías
Cloud Consolas / Bash Google Cloud Wordpress

Cómo actualizar la versión de PHP en Google Cloud WordPress

Me encontré una cosa por ahí, que voy a tesetar, que sugiere utilizar un repositorio de un tercero.

apt-get install ca-certificates apt-transport-https 
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
apt-get update
apt-get install php7.3

Creo que esto habrá que revisarlo frente a la documentación oficial de Google: https://cloud.google.com/appengine/docs/standard/php7/php-differences

Categorías
Cloud Consolas / Bash Firebase

Cómo hacer un query collectionGroup en Firebase Functions

Ahí les va, envuelto en una función http que pueden llamar desde curl.

export const testGroupCollection = functions.https.onRequest(async (req, res) => {
    // Load/init admin
    const admin = await import('firebase-admin');
    try { admin.initializeApp() } catch(e) {}

    const collectionRef = admin.firestore().collectionGroup('cosas');
    await collectionRef.get()
      .then((r) => {
        console.log(r.docs.length);
        console.log(r.docs[0].data);
        // console.log(r.docs);
      })
      .catch((err) => {
        console.log(err);
      });

    res.status(200).send('ok');
});

Es probable que por asuntos de seguridad, su función no quede pública, así que deban de seguir las indicaciones en este link para poder que la función pueda llamarse sin autenticación: https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation

Categorías
Cloud Consolas / Bash Firebase GIT Google Cloud SSH

Los comandos y las cosas que siempre se me olvidan

Este es un listado de los comandos y las cosas que siempre se me olvidan, por categorías y en orden alfabético. A ver si ya no se me olvidan más:

Categorías
Cloud Dev Firebase Flutter

Cómo consultar el listado de firmas de una app (gradlew signinReport) y habilitar Google Sign In en una instalación directa con Flutter


Este post resuelve el bug Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) que ocurre al testear a la autenticación en local. En caso de que el comando ./gradlew signingReport no funcione, es muy probable que su error esté relacionado con este problema https://stackoverflow.com/questions/61289461/java-lang-noclassdeffounderror-could-not-initialize-class-org-codehaus-groovy-v

En pocas palabras, para resolver el bug, basta con ir al archivo android\gradle\wrapper\gradle-wrapper.properties y reemplazar la línea:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip

Por:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

También es posible que sea mejor correr el comando directamente en gitbash, para evitar esos formatos extraños que a veces genera cuando se usa en vscode.


Ahora sí, este es el post:

Normalmente es suficiente con agregar las firmas de firebase y de google play a la app para poder que funcione. Pero en el caso de las instalaciones directas (un archivo apk), es necesario agregar la firma de release de la app a firebase. El proceso es el siguiente:

Primero tenemos que consultar el listado de firmas o gradlew signinReport (por si alguna vez se había preguntado para que era ese tal archivo gradlew). Para esto hay dos opciones:

  • Buscar el archivo gradlew, normalmente ubicado en un-proyecto/android/gradlew, y Hacer clic derecho encima y seleccionar la opción Abrir en la Consola (Open in Terminal).
  • Navegar en la consola hasta la carpeta android.

A continuación ejecutar el siguiente comando:

./gradlew signingReport

Esto mostrará un largo reporte con todas las firmas y sobretodo con las claves SHA1, que se necesitarán.

La clave requerida en este caso es la que está marcada como release:

...
Variant: release
Config: release
Store: C:\Su Madre\Su App\android\app\key.jks
Alias: key
MD5: E6:...
SHA1: A9:...
....

Esta opción les permitirá agregar la clave a firebase o donde quiera que la necesiten… incluso en una petición a la santísima virgen, si no les funciona.

No olviden descargar y actualizar el archivo google-services.json después de esto. Eso es todo.

Categorías
Google Cloud WooCommerce Wordpress

Cómo deshabilitar los redireccionamientos a https temporalmente (Google Cloud One Click WordPress + Certificado Certbot)

Abrir el archivo de configuración en la consola

sudo nano /etc/apache2/sites-enabled/000-default.conf

Comentar las líneas que hacen el redireccionamiento