Firebase-tools: expanda a documentação sobre como usar firebase-tools como um módulo

Criado em 29 abr. 2017  ·  4Comentários  ·  Fonte: firebase/firebase-tools

Muitos dos comandos que você pode fazer por meio de CLI são muito difíceis de descobrir como fazer programaticamente ao carregá-lo como um módulo. Documentação atualizada sobre sintaxe, comandos disponíveis, etc, seria útil.

Perguntas que eu tenho (ou tive mas resolvi):

  • como imprimir uma lista de todas as chaves usando tools.functions.config.get
  • como implantar funções
  • como obter uma lista de todas as funções implantadas

observação sobre este: tive que realmente cavar em cloudfunctions.js, api.js e auth.js. Acontece que essa funcionalidade está disponível dentro do pacote, mas não é exibida em firebase-tools. isso é realmente útil.

docs

Comentários muito úteis

Estou lutando para fazer algo funcionar aqui também.
@SJAnderson Você pode postar alguns de seus exemplos aqui? _Particularmente o config get (e definir se você tiver) _ 🙏

Todos 4 comentários

Há uma amostra

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

Mas eu tive que instalar firebase-tools (sem -g) para que funcionasse.

Tentei algo assim

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

devido à falta de documentação mas obteve este erro

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)

Um conjunto adequado de exemplos de como usar isso será ótimo, por favor.

Estou lutando para fazer algo funcionar aqui também.
@SJAnderson Você pode postar alguns de seus exemplos aqui? _Particularmente o config get (e definir se você tiver) _ 🙏

Lutei com isso até que cavei na fonte. Então, até termos documentos para isso, acho que funciona:

  • Os argumentos são passados ​​para a função normalmente
  • As opções (--foo bar) precisam ser passadas como parte de um objeto de opções
  • O objeto de opções deve ser passado como o _last_ argumento
  • Você sempre mescla opções globais com as opções de comando
  • As opções globais são as mesmas da linha de comando, mas com cwd adicionalmente
  • Comandos com dois-pontos são executados como client.<command>.<subcommand>

Exemplos:

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!

Além disso, não acho que você precise adicionar uma opção token no código do nó se você tiver um process.env.FIREBASE_TOKEN , ele carrega automaticamente. HTH

Leia mais neste diretório de arquivos e comandos:
https://github.com/firebase/firebase-tools/blob/master/src/commands/index.js

@jesperp, obrigado por sua explicação clara e concisa! Mesmo como alguém que "sabe" a resposta para isso, vou me referir à sua resposta quando me esquecer, até que levantemos os documentos.

Esta página foi útil?
0 / 5 - 0 avaliações