Firebase-tools: расширить документацию по использованию firebase-tools в качестве модуля

Созданный на 29 апр. 2017  ·  4Комментарии  ·  Источник: firebase/firebase-tools

Многие команды, которые вы можете выполнять с помощью CLI , очень трудно понять программно, загружая его как модуль. Была бы полезна обновленная документация по синтаксису, доступным командам и т. Д.

Вопросы, которые у меня есть (или были, но решены):

  • как распечатать список всех ключей с помощью tools.functions.config.get
  • как развернуть функции
  • как получить список всех развернутых функций

обратите внимание на это: пришлось действительно покопаться в cloudfunctions.js, api.js и auth.js. Оказывается, эта функциональность доступна внутри пакета, а не в firebase-tools. это действительно полезно.

Самый полезный комментарий

Я тоже изо всех сил пытаюсь заставить что-нибудь работать здесь.
@SJAnderson Не могли бы вы опубликовать здесь несколько своих примеров? _В частности, получение конфигурации (и установка, если она у вас есть) _ 🙏

Все 4 Комментарий

Есть образец

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

Но мне пришлось установить firebase-tools (без -g), чтобы это работало.

Пробовал что-то вроде этого

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

из-за отсутствия документации, но получил эту ошибку

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)

Правильный набор примеров использования этого будет, пожалуйста, отличным.

Я тоже изо всех сил пытаюсь заставить что-нибудь работать здесь.
@SJAnderson Не могли бы вы опубликовать здесь несколько своих примеров? _В частности, получение конфигурации (и установка, если она у вас есть) _ 🙏

Я боролся с этим, пока не начал копаться в источнике. Итак, пока у нас не будет документов для этого, я думаю, что это работает:

  • Аргументы передаются в функцию как обычно
  • Параметры (--foo bar) необходимо передавать как часть объекта параметров
  • Объект параметров должен быть передан как _последний_ аргумент.
  • Вы всегда объединяете глобальные параметры с параметрами команды
  • Глобальные параметры такие же, как в командной строке, но с добавлением cwd
  • Команды с двоеточием выполняются как client.<command>.<subcommand>

Примеры:

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!

Кроме того, я не думаю, что вам нужно добавлять параметр token в код узла, если у вас есть process.env.FIREBASE_TOKEN , он загружается автоматически. HTH

Подробнее читайте в этом каталоге файлов и команд:
https://github.com/firebase/firebase-tools/blob/master/src/commands/index.js

@jesperp спасибо за четкое и лаконичное объяснение! Даже как человек, который «знает» ответ на этот вопрос, я буду ссылаться на ваш ответ, когда забуду, пока мы не загрузим документы.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги