Как я могу развернуть одну облачную функцию Firebase в группе и регионе? - PullRequest
2 голосов
/ 21 апреля 2020

Я создал группу облачных функций Firebase (v2), которые развернуты в регионе (europe-west1).

#index.ts
import * as apiV2 from './v2';
export const v2 = apiV2;
#v2.ts
export const addTextMessage = functions.region('europe-west1').onCall(
 ...
)

Я хочу только развернуть функцию addTextMessage. Я попытался:

firebase deploy --only functions:v2-addTextMessage
# or
firebase deploy --only "functions:v2-addTextMessage(europe-west1)"

Однако функция не развернута:

✔  functions: functions folder uploaded successfully
i  functions: current functions in project: v2-addTextMessage(europe-west1)
⚠  functions: the following filters were specified but do not match any functions in the project: v2-addTextMessage(europe-west1)

Какую команду использовать?

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Попробуйте заменить «-» на «.».

Вы должны использовать:

firebase deploy --only functions:groupName.functionName

В вашем случае:

firebase deploy --only functions:v2.addTextMessage

Это правда, что журнал терминала CLI вводит в заблуждение, потому что если вы превысили квоту на развертывание и CLI обнаруживает, что имя вашей функции, например, v2-addTextMessage(europe-west-1), он напечатает сообщение, предлагающее использовать команду firebase deploy --only functions:v2-addTextMessage только для развертывания этой функции, которая не работает.

См. полную документацию по CLI Firebase здесь

0 голосов
/ 21 апреля 2020

Вы используете правильную команду, однако вы не экспортировали функцию addTextMessage в файл index.ts, без чего развертывание не может найти функцию для развертывания. Вы можете экспортировать его, добавив следующий код в index.ts:

export const v2-addTextMessage = apiV2.addTextMessage

Кроме того, вы не можете использовать параметр функций и имя функции в виде строки. Таким образом, ваша команда в этом случае должна быть:

firebase deploy --only functions:v2-addTextMessage

Для указания региона при развертывании, поскольку вы уже добавили свой код в отредактированную версию вопроса, вы не можете сделать это с помощью команды FirebaseCLI, спасибо @Doug Stevenson за то, что указал на это в разделе комментариев.

В идеале, как вы можете видеть на этом видео , вы должны указать это в своем коде функции облака перед развертыванием, добавив следующее:

exports.v2-addTextMessage = functions
    .region('europe-west1')
    .storage.object().onFinalize((object) => { });
...