Firebase-tools: expanda la documentación sobre cómo usar firebase-tools como módulo

Creado en 29 abr. 2017  ·  4Comentarios  ·  Fuente: firebase/firebase-tools

Muchos de los comandos que puede ejecutar a través de CLI son muy difíciles de entender mediante programación cuando se cargan como módulo. Sería útil contar con documentación actualizada sobre sintaxis, comandos disponibles, etc.

Preguntas que tengo (o tuve pero resueltas):

  • cómo imprimir una lista de todas las claves usando tools.functions.config.get
  • cómo implementar funciones
  • cómo obtener una lista de todas las funciones implementadas

nota sobre esto: realmente tuve que profundizar en cloudfunctions.js, api.js y auth.js. resulta que esta funcionalidad está disponible dentro del paquete, pero no aparece en firebase-tools. esto es realmente útil.

docs

Comentario más útil

Yo también estoy luchando para que algo funcione aquí.
@SJAnderson ¿Puedes publicar algunos de tus ejemplos aquí? _En particular, la configuración se obtiene (y se establece si la tiene) _ 🙏

Todos 4 comentarios

Hay una muestra

var client = require('firebase-tools');
client.list().then(function(data) {
  console.log(data);
}).catch(function(err) {
  // handle error
});

Pero tuve que instalar firebase-tools (sin -g) para que eso funcione.

Intenté algo como esto

client.database.get('/app-settings/test').then((data) => {
    console.log(data);
}).catch(function (err) {
    console.log(err);
});

debido a la falta de documentación pero obtuve este error

TypeError: Cannot create property 'project' on string '/app-settings/test'
    at Command._prepare (/Users/someone/Documents/test/node_modules/firebase-tools/lib/command.js:104:19)

Un conjunto adecuado de muestras del uso de esto será genial, por favor.

Yo también estoy luchando para que algo funcione aquí.
@SJAnderson ¿Puedes publicar algunos de tus ejemplos aquí? _En particular, la configuración se obtiene (y se establece si la tiene) _ 🙏

Luché con esto hasta que indagué en la fuente. Entonces, hasta que tengamos documentos para esto, creo que esto funciona:

  • Los argumentos se pasan a la función como de costumbre
  • Las opciones (--foo bar) deben pasarse como parte de un objeto de opciones
  • El objeto de opciones debe pasarse como el último argumento
  • Siempre fusiona las opciones globales con las opciones de comando
  • Las opciones globales son las mismas que las de la línea de comando pero con cwd adicionalmente
  • Los comandos que tienen dos puntos se ejecutan como client.<command>.<subcommand>

Ejemplos:

firebase target hosting --project foo
==>
client.target("hosting", { project: foo})

firebase deploy --only hosting  --token $FIREBASE_TOKEN
==>
client.deploy({ only: 'hosting', token: process.env.FIREBASE_TOKEN })

firebase target:apply mytype mytarget
==>
client.target.apply('mytype', 'mytarget')     // No options added!

Además, no creo que necesite agregar una opción token en el código de nodo si tiene un process.env.FIREBASE_TOKEN , se carga automáticamente. HTH

Lea más en este directorio de archivos y comandos:
https://github.com/firebase/firebase-tools/blob/master/src/commands/index.js

@jesperp ¡ gracias por tu explicación clara y concisa! Incluso como alguien que "sabe" la respuesta a esto, me referiré a tu respuesta cuando la olvide hasta que obtengamos los documentos.

¿Fue útil esta página
0 / 5 - 0 calificaciones