<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Documentación on Blowfish</title><link>https://blowfish.page/es/docs/</link><description>Recent content in Documentación on Blowfish</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>© 2026 Blowfish</copyright><atom:link href="https://blowfish.page/es/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Bienvenido a Blowfish</title><link>https://blowfish.page/es/docs/welcome/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/welcome/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Blowfish está repleto de funcionalidades.
&lt;/div&gt;

&lt;p&gt;El objetivo original de Blowfish era desarrollar un tema simple y ligero. El tema es un fork de &lt;a target="_blank" href="https://github.com/nunocoracao/congo"&gt;Congo&lt;/a&gt; y expande su visión inicial.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/welcome/featured.svg"/></item><item><title>Instalación</title><link>https://blowfish.page/es/docs/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/installation/</guid><description>&lt;p&gt;Simplemente sigue el procedimiento estándar de Hugo &lt;a href="https://gohugo.io/getting-started/quick-start/" target="_blank" rel="noreferrer"&gt;Inicio Rápido&lt;/a&gt; para ponerte en marcha rápidamente.&lt;/p&gt;
&lt;p&gt;Las instrucciones de instalación detalladas se encuentran a continuación. También están disponibles instrucciones para &lt;a href="https://blowfish.page/es/docs/installation/#instalaci%c3%b3n-de-actualizaciones" &gt;actualizar el tema&lt;/a&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/installation/featured.svg"/></item><item><title>Primeros Pasos</title><link>https://blowfish.page/es/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/getting-started/</guid><description>&lt;div
 
 class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
 
 &gt;
 &lt;span
 
 class="text-primary-400 pe-3 flex items-center"
 
 &gt;
 &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
 &lt;/span&gt;

 &lt;span
 
 class="dark:text-neutral-300"
 
 &gt;Esta sección asume que ya has &lt;a href="https://blowfish.page/es/docs/installation/" target="_blank" rel="noreferrer"&gt;instalado el tema Blowfish&lt;/a&gt;.&lt;/span&gt;
&lt;/div&gt;

&lt;/br&gt;

 



&lt;div
 
 class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
 
 &gt;
 &lt;span
 
 class="text-primary-400 pe-3 flex items-center"
 
 &gt;
 &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"&gt;
&lt;path fill="currentColor" d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/&gt;&lt;/svg&gt;&lt;/span&gt;
 &lt;/span&gt;

 &lt;span
 
 class="dark:text-neutral-300"
 
 &gt;&lt;p&gt;Acabamos de lanzar una herramienta CLI para ayudarte a empezar con Blowfish. Te ayudará con la instalación y configuración. Instala la herramienta CLI globalmente usando:&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/getting-started/featured.svg"/></item><item><title>Configuración</title><link>https://blowfish.page/es/docs/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/configuration/</guid><description>&lt;p&gt;Blowfish es un tema altamente personalizable y utiliza algunas de las últimas características de Hugo para simplificar su configuración.&lt;/p&gt;
&lt;p&gt;El tema viene con una configuración predeterminada que te permite empezar con un blog básico o sitio web estático.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/configuration/featured.svg"/></item><item><title>Diseño de página de inicio</title><link>https://blowfish.page/es/docs/homepage-layout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/homepage-layout/</guid><description>&lt;p&gt;Blowfish proporciona un diseño de página de inicio totalmente flexible. Hay dos plantillas principales para elegir con configuraciones adicionales para ajustar el diseño. Alternativamente, también puedes proporcionar tu propia plantilla y tener control total sobre el contenido de la página de inicio.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/homepage-layout/featured.svg"/></item><item><title>Shortcodes</title><link>https://blowfish.page/es/docs/shortcodes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/shortcodes/</guid><description>&lt;p&gt;Además de todos los &lt;a href="https://gohugo.io/content-management/shortcodes/" target="_blank" rel="noreferrer"&gt;shortcodes predeterminados de Hugo&lt;/a&gt;, Blowfish añade algunos adicionales para funcionalidad extra.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Alert
 &lt;div id="alert" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#alert" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;alert&lt;/code&gt; muestra su contenido como una caja de mensaje estilizada dentro de tu artículo. Es útil para llamar la atención sobre información importante que no quieres que el lector se pierda.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/shortcodes/featured.svg"/></item><item><title>Front Matter</title><link>https://blowfish.page/es/docs/front-matter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/front-matter/</guid><description>&lt;p&gt;Además de los &lt;a href="https://gohugo.io/content-management/front-matter/#front-matter-variables" target="_blank" rel="noreferrer"&gt;parámetros de front matter predeterminados de Hugo&lt;/a&gt;, Blowfish añade varias opciones adicionales para personalizar la presentación de artículos individuales. Todos los parámetros de front matter del tema disponibles se enumeran a continuación.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/front-matter/featured.svg"/></item><item><title>Múltiples autores</title><link>https://blowfish.page/es/docs/multi-author/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/multi-author/</guid><description>&lt;p&gt;Algunos sitios web tienen más de un autor contribuyendo con contenido y por lo tanto requieren más de un único autor predeterminado para todo el sitio. Para esos casos de uso, Blowfish permite a los usuarios extender la lista de autores usando la función de múltiples autores.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/multi-author/featured.svg"/></item><item><title>Partials</title><link>https://blowfish.page/es/docs/partials/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/partials/</guid><description>&lt;h2 class="relative group"&gt;Analytics
 &lt;div id="analytics" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#analytics" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Blowfish proporciona soporte integrado para Fathom Analytics, Google Analytics y Umami Analytics. Fathom es una alternativa de pago a Google Analytics que respeta la privacidad del usuario.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/partials/featured.svg"/></item><item><title>Miniaturas</title><link>https://blowfish.page/es/docs/thumbnails/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/thumbnails/</guid><description>&lt;h2 class="relative group"&gt;Miniaturas
 &lt;div id="miniaturas" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#miniaturas" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Blowfish fue mejorado para facilitar añadir soporte visual a tus publicaciones. Para hacerlo, solo necesitas colocar un archivo de imagen (casi todos los formatos son soportados pero recomendamos &lt;code&gt;.png&lt;/code&gt; o &lt;code&gt;.jpg&lt;/code&gt;) que comience con &lt;code&gt;feature*&lt;/code&gt; dentro del directorio principal de tu artículo, como se muestra en el ejemplo de abajo.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/thumbnails/featured.svg"/></item><item><title>Ejemplos de contenido</title><link>https://blowfish.page/es/docs/content-examples/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/content-examples/</guid><description>&lt;p&gt;Si has estado leyendo la documentación en orden, ahora deberías conocer todas las características y configuraciones disponibles en Blowfish. Esta página está diseñada para unir todo y ofrecer algunos ejemplos prácticos que podrías querer usar en tu proyecto Hugo.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/content-examples/featured.svg"/></item><item><title>Series</title><link>https://blowfish.page/es/docs/series/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/series/</guid><description>&lt;p&gt;Blowfish proporciona una función para agrupar un conjunto de artículos bajo una &amp;ldquo;serie&amp;rdquo;. Colocar un artículo en una serie mostrará el resto de los artículos de la serie en cada página individual y proporcionará una forma rápida de navegar entre ellos. Puedes ver un ejemplo de esto arriba.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/series/featured.svg"/></item><item><title>Personalización avanzada</title><link>https://blowfish.page/es/docs/advanced-customisation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/advanced-customisation/</guid><description>&lt;p&gt;Hay muchas formas de hacer cambios avanzados a Blowfish. Lee a continuación para aprender más sobre qué se puede personalizar y la mejor manera de lograr el resultado deseado.&lt;/p&gt;
&lt;p&gt;Si necesitas más consejos, publica tus preguntas en &lt;a href="https://github.com/nunocoracao/blowfish/discussions" target="_blank" rel="noreferrer"&gt;GitHub Discussions&lt;/a&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/advanced-customisation/featured.svg"/></item><item><title>Alojamiento y despliegue</title><link>https://blowfish.page/es/docs/hosting-deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/hosting-deployment/</guid><description>&lt;p&gt;Hay muchas formas de desplegar tu sitio web Hugo construido con Blowfish. El tema está diseñado para ser flexible en casi cualquier escenario de despliegue.&lt;/p&gt;
&lt;p&gt;Blowfish usa URLs relativas en todo el tema. Esto permite que los sitios se desplieguen fácilmente en subcarpetas y hosts como GitHub Pages. Normalmente no se requiere ninguna configuración especial siempre que el parámetro &lt;code&gt;baseURL&lt;/code&gt; haya sido configurado en el archivo &lt;code&gt;hugo.toml&lt;/code&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/hosting-deployment/featured.svg"/></item><item><title>Firebase: Vistas &amp; Likes</title><link>https://blowfish.page/es/docs/firebase-views/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blowfish.page/es/docs/firebase-views/</guid><description>&lt;p&gt;Para poder soportar datos dinámicos en tu sitio web, hemos añadido soporte para integrar Firebase. Esto te permitirá usar la función de vistas en listas y publicaciones.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ve al &lt;a target="_blank" href="https://firebase.com"&gt;sitio web de Firebase&lt;/a&gt; y crea una cuenta gratis&lt;/li&gt;
&lt;li&gt;Crea un nuevo proyecto&lt;/li&gt;
&lt;li&gt;Selecciona la ubicación de analytics&lt;/li&gt;
&lt;li&gt;Configura Firebase en Blowfish obteniendo las variables para tu proyecto y configurándolas en el archivo &lt;code&gt;params.toml&lt;/code&gt;. Más detalles se pueden encontrar en &lt;a target="_blank" href="https://blowfish.page/es/docs/configuration/#theme-parameters"&gt;esta página&lt;/a&gt;. Puedes encontrar un ejemplo del archivo que Firebase proporcionará abajo, observa los parámetros dentro del objeto FirebaseConfig.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Import the functions you need from the SDKs you need
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;initializeApp&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;from&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;firebase/app&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;getAnalytics&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;from&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;firebase/analytics&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// TODO: Add SDKs for Firebase products that you want to use
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// https://firebase.google.com/docs/web/setup#available-libraries
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Your web app&amp;#39;s Firebase configuration
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// For Firebase JS SDK v7.20.0 and later, measurementId is optional
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;firebaseConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;authDomain&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;blowfish-21fff.firebaseapp.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;projectId&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;blowfish-21fff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;storageBucket&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;blowfish-21fff.appspot.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;messagingSenderId&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;60108104191&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;appId&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1:60108104191:web:039842ebe1370698b487ca&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;measurementId&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;G-PEDMYR1V0K&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Initialize Firebase
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;initializeApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;firebaseConfig&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;analytics&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;getAnalytics&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Configurar Firestore - Selecciona Build y abre Firestore. Crea una nueva base de datos y elige iniciar en modo producción. Selecciona la ubicación del servidor y espera. Una vez iniciado, necesitas configurar las reglas. Simplemente copia y pega el archivo de abajo y presiona publicar. Estas reglas aseguran que las vistas solo pueden incrementarse en 1, y los likes solo pueden cambiarse en +1 o -1 (y nunca bajar de 0).&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rules_version = &amp;#39;2&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;service cloud.firestore {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; match /databases/{database}/documents {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; // Views - read anyone, only increment by 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; match /views/{document} {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow read: if request.auth != null;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow create: if request.auth != null
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.keys().hasOnly([&amp;#39;views&amp;#39;])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.views == 1;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow update: if request.auth != null
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.diff(resource.data).affectedKeys().hasOnly([&amp;#39;views&amp;#39;])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.views == resource.data.views + 1;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; // Likes - read anyone, only +1 or -1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; match /likes/{document} {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow read: if request.auth != null;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow create: if request.auth != null
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.keys().hasOnly([&amp;#39;likes&amp;#39;])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.likes == 1;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow update: if request.auth != null
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.diff(resource.data).affectedKeys().hasOnly([&amp;#39;likes&amp;#39;])
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; (request.resource.data.likes == resource.data.likes + 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; || request.resource.data.likes == resource.data.likes - 1)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;amp;&amp;amp; request.resource.data.likes &amp;gt;= 0;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; // Deny everything else
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; match /{document=**} {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow read, write: if false;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;Habilitar autorización anónima - Selecciona Build y abre Authentication. Selecciona comenzar, haz clic en Anónimo y actívalo, guarda.&lt;/li&gt;
&lt;li&gt;Disfruta - ahora puedes activar vistas y likes en Blowfish para todos (o específicos) artículos.&lt;/li&gt;
&lt;/ol&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blowfish.page/docs/firebase-views/featured.svg"/></item></channel></rss>