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
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
Consolas / Bash GIT

Cómo crear una Acción (Action) en GitHub, que cree un archivo .zip (release) para cada versión que se suba al repositorio

Y aunque hay muchísimo que decir sobre esto de los «Actions» de GitHub, por lo pronto veremos solamente cómo es posible crear una nueva acción que genere un archivo .zip para cada versión que se suba, para que todos nuestros fans puedan descargar esas magníficas piezas de código que producimos. Ahí les va:

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 Consolas / Bash Firebase

Cómo recuperar los indices de Firestore

Cuando uno está programando en angular, siempre es más fácil simplemente darle click al link que se genera en el error Missing index y dejar que el índice se cree solito sin tener que pensar. El lío es cuando ya es momento de pasar la aplicación a productivo y se necesitan los indices.

Para recuperar después los índices de firestore, basta con correr el siguiente comando:

firebase firestore:indexes

El comando arrojará un objeto json, correspondiente a todos los índices disponibles en el servidor.

Copiar y pegar, ¡Naturalmente!

Categorías
SSH

Como verificar las versiones del sistema operativo (LAMP) usando SSH

Seré breve:

lsb_release -a

Adiós.

Categorías
Consolas / Bash SSH

Como instalar extensiones de PHP a través de SSH

Suponiendo que necesitamos instalar soap y que es para la versión 7.0 de PHP:

sudo apt-get install php7.0-soap

Otra extensión que es muy común es imagick, que sale como faltante en los diagnósticos de WordPress o de WooCommerce.

sudo apt-get install php-imagick

Luego de instalar cualquier extensión, es neceario reiniciar Apache para que surta efecto:

sudo service apache2 restart

Seguramente querrán ver si la extensión quedó instalada o tal vez verificar si ya se instaló. El siguiente comando les mostrará un listado de las extensiones activas:

php -m

Categorías
SSH

Como resolver los problemas de redireccionamientos en WordPress sobre (One Click) GoogleCloud

Al migrar un sitio en WordPress para el servicio de Google Cloud, es posible que los vínculos no funcionen. Si los enlaces permanentes se configuran en la opción «Simple», seguramente funcionarán bien.

Para resolverlo, entrar a SSH y abrir el archivo de configuración así:

Categorías
SSH

Como usar SSH para editar un archivo

Para esto se puede utilizar un editor llamado nano, así:

sudo nano path/to/file