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):
tools.functions.config.get
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.
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:
cwd
adicionalmenteclient.<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.
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) _ 🙏