En esta página, se explica cómo puedes publicar una extensión en Extensions Hub.
Antes de comenzar
Si quieres compartir una extensión, primero debes registrarte como publicador de extensiones.
Fuentes verificables
Todas las extensiones publicadas en Extensions Hub deben tener una fuente que se pueda verificar públicamente. En lugar de subir el código fuente de la extensión directamente en Extensions Hub, debes especificar la ubicación del código fuente para que Extensions Hub lo descargue y compile desde allí.
Esto significa que tu código fuente de extensión estará disponible en un repositorio público de GitHub.
Subir código desde una fuente verificable tiene los siguientes beneficios:
- Los usuarios pueden inspeccionar el código fuente de la revisión específica de la extensión que se instalará.
- Puedes asegurarte de subir solo lo que quieres subir, no el trabajo en curso ni los archivos restantes del desarrollo.
Ciclo de desarrollo recomendado
Las herramientas de desarrollo de Extensiones de Firebase admiten la carga de versiones previas al lanzamiento de tus extensiones, lo que te permite probar tus extensiones con facilidad y el proceso de instalación de extensiones en el mismo entorno en el que, finalmente, se lanzarán.
Esta función permite realizar un ciclo de desarrollo como el siguiente:
Desarrolla e itera rápidamente tu extensión con Firebase Emulator Suite.
Para probar tu extensión en un proyecto real, instálala desde la fuente local:
firebase ext:install /path/to/extension
firebase deploy --only extensions
Sube una versión previa al lanzamiento a Extensions Hub (consulta a continuación). Distribuye el vínculo de instalación para realizar pruebas más amplias y, luego, itera subiendo más versiones previas al lanzamiento según sea necesario.
Sube la versión final y estable a Extensions Hub (consulta a continuación) y envíala para su revisión. Si la extensión aprueba la revisión, se publicará en Extensions Hub.
Aumenta el número de versión en
extension.yaml
y repite este ciclo para la próxima versión de la extensión.
Sube una extensión nueva
Sigue estos pasos para subir una extensión por primera vez:
Opcional: Confirma tu código en un repositorio público de GitHub.
Ejecuta el comando
ext:dev:upload
de Firebase CLI:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Fuente local
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
En la invocación del comando, especifica la siguiente información:
El ID de publicador que registraste.
Una cadena de ID que identificará la extensión. Nombra tus extensiones con el siguiente formato:
firebase-product-description-of-tasks-performed
. Por ejemplo:firestore-bigquery-export
.
El comando te solicitará información adicional:
Si vas a subir desde GitHub:
La URL al repositorio de la extensión en GitHub. Ten en cuenta que un repositorio puede contener varias extensiones, siempre que cada una tenga una raíz única.
Cuando subas una extensión nueva por primera vez, el repositorio se registrará como la fuente canónica de la extensión.
El directorio en el repositorio que contiene tu extensión.
La referencia de Git de la confirmación de la que deseas compilar la fuente de la versión de la extensión. Puede ser un hash de confirmación, una etiqueta o el nombre de una rama.
La etapa de lanzamiento de la versión que subirás.
Las etapas
alpha
,beta
yrc
(versiones candidatas para el lanzamiento) permiten subir versiones previas al lanzamiento para que los verificadores las instalen. Usa una de estas etapas para subir una extensión nueva.La etapa
stable
se usa para que las versiones públicas se publiquen en Extensions Hub. Si subes una versiónstable
, se iniciará automáticamente una revisión y, si se aprueba, se publicará la extensión.
Ten en cuenta que no especificas un número de versión (este valor proviene del archivo
extension.yaml
). Cuando subes una versión de extensión previa al lanzamiento, se adjuntan el número de etapa y carga a la versión. Por ejemplo, siextension.yaml
especifica la versión 1.0.1 y subes una versión candidata, se generaría la versión1.0.1-rc.0
. Si subes otra versión candidata de la misma versión, el recuento aumentará automáticamente, lo que generará1.0.1-rc.1
, y así sucesivamente.
Ahora que subiste una versión previa al lanzamiento de la extensión, puedes compartirla con otras personas para que la prueben. Los usuarios pueden instalar tu extensión de dos maneras:
Con la consola: Los usuarios pueden instalar la extensión cuando hacen clic en un vínculo que tenga el siguiente formato:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Puedes compartir el vínculo directo con los verificadores.
Con la CLI: los usuarios pueden instalar la extensión pasando la cadena de ID de la extensión al comando
ext:install
:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
Sube una versión actualizada
Después de subir la primera versión de una extensión, puedes subir actualizaciones para corregir problemas, agregar funciones o avanzar la etapa de lanzamiento. Cuando subas una versión nueva, se solicitará a los usuarios que tengan instalada una versión anterior de la extensión que realicen la actualización en Firebase console.
Sigue estos pasos para subir una actualización:
Opcional: Confirma tu código en un repositorio público de Git.
Ejecuta el comando
ext:dev:upload
de Firebase CLI:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Esta vez, no se te pedirá que especifiques el repositorio de GitHub ni el directorio raíz de la extensión, dado que ya se configuraron para la extensión. Si refactorizaste la estructura del repositorio o migraste a un repositorio nuevo, puedes cambiarlo con los argumentos del comando
--root
y--repo
.Fuente local
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Envía una extensión para su publicación
Cuando estés listo para publicar tu extensión de forma pública, sigue estos pasos:
Confirma tu código en un repositorio público de Git (obligatorio para las actualizaciones públicas).
Ejecuta el comando
ext:dev:upload
de Firebase CLI y especificastable
como la etapa de lanzamiento:firebase ext:dev:upload your_publisher_id/your_extension_id
Si publicaste una versión de la extensión con anterioridad, si subes una versión estable nueva, se enviará la extensión a revisión automáticamente.
Si subiste la primera versión estable de la extensión, busca la extensión en el panel del publicador y haz clic en Publish to Extensions Hub.
Una vez que se envíe, la revisión puede tardar unos días. Si se acepta, la extensión se publicará en Extensions Hub. De lo contrario, recibirás un mensaje en el que se explicará el motivo. Podrás abordar los problemas informados y volver a enviar la extensión para que se revise.
Para acelerar la revisión y aumentar las posibilidades de aprobar en el primer intento, antes de enviarla, verifica lo siguiente:
- Probaste exhaustivamente la extensión y el proceso de instalación.
- Tu documentación está completa y es correcta, y se renderiza bien en Firebase console.
- El nombre y el desarrollo de la marca que uses como publicador te identifican de manera clara y precisa.
- El nombre, la descripción y el ícono de la extensión representan de forma clara y precisa el propósito de tu extensión.
- Aplicaste etiquetas útiles y precisas.
- En
extension.yaml
, declaraste todas las APIs de Google y de terceros que usas, así como todos los tipos de eventos que emite tu extensión. - Solo solicitas acceso a los roles necesarios para que la extensión funcione, y les explicaste claramente a los usuarios el motivo por el que lo necesitas.
- Tus archivos de origen tienen una licencia clara según las condiciones de
Apache-2.0
.
Administra las extensiones subidas y publicadas
Obtén una lista de las extensiones que subiste
Para enumerar las extensiones que subiste con tu ID de publicador, realiza una de las siguientes acciones:
Panel del editor
Consúltalas en el panel del publicador.
Firebase CLI
Ejecuta el comando ext:dev:list
:
firebase ext:dev:list your_publisher_id
Consulta el uso de las extensiones que subiste
Para consultar el uso de las extensiones que subiste con tu ID de publicador, realiza una de las siguientes acciones:
Panel del editor
El panel del publicador tiene métricas de uso acumulativas para todas tus extensiones y métricas individuales para cada extensión.
Firebase CLI
Ejecuta el comando ext:dev:usage
:
firebase ext:dev:usage your_publisher_id
Da de baja una versión de la extensión
Es posible que en algún momento quieras dar de baja una versión anterior de tu extensión. Por ejemplo, si lanzas una versión nueva que corrige un error grave o actualiza una dependencia con una actualización de seguridad importante, es importante evitar que los usuarios nuevos instalen una versión anterior y se los debe alentar a que actualicen.
Para dar de baja una versión de la extensión, realiza una de las siguientes acciones:
Panel del editor
- En el panel del publicador, haz clic en la extensión para abrir su vista de detalles.
- Selecciona la versión que quieres dar de baja.
- Haz clic en Dar de baja.
Firebase CLI
Ejecuta el comando ext:dev:deprecate
:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
Puedes especificar una sola versión o un rango de versiones. Ejemplos:
1.0.2
1.1.0-1.1.7
<1.2.0
1.1.*
Las versiones obsoletas de una extensión no se enumeran en Extensions Hub y no se pueden instalar. Los usuarios cuyos proyectos tengan una versión obsoleta instalada verán un mensaje que los alentará a actualizarla. Mientras tanto, podrán seguir usando y reconfigurando la extensión.
Si todas las versiones de una extensión están obsoletas, la extensión se considera como tal y se quitará de Extensions Hub. Si subes una versión nueva de una extensión obsoleta, se iniciará automáticamente una revisión y, cuando se acepte, se volverá a publicar en Extensions Hub.
Para revertir la baja, usa el panel del publicador o ejecuta el comando ext:dev:undeprecate
de Firebase CLI:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Apéndice: Soluciona errores de compilación
Cuando subes tu extensión, el backend primero compila tu código fuente mediante el siguiente proceso:
Clona tu repositorio de GitHub y consulta la referencia de origen especificada.
Instala las dependencias de NPM mediante la ejecución de
npm clean-install
en cada directorio del código fuente de función especificado enextension.yaml
(consultasourceDirectory
en Recursos de Cloud Function).Ten en cuenta lo siguiente:
Cada archivo
package.json
debe tener un archivopackage-lock.json
correspondiente. Para obtener más información, consulta npm-ci.No se ejecutarán secuencias de comandos posteriores a la instalación durante la instalación de la dependencia. Si tu compilación de código fuente se basa en secuencias de comandos posteriores a la instalación, refactorízala antes de subirla.
Compila el código ejecutando
npm run build
en cada directorio del código fuente de la función especificado enextension.yaml
.
Solo el directorio raíz de la extensión se guardará en el paquete de extensión final que se compartirá.
Si recibes errores de compilación mientras subes la extensión, replica los pasos de compilación anteriores de manera local en un directorio nuevo hasta que no haya errores y, luego, intenta subirla de nuevo.