Есть ли способ получить имя сегмента в функциях Firebase? - PullRequest
0 голосов
/ 11 марта 2020

Я искал способы получения имени корзины в функциях Firebase.

В документации сказано, что вы можете сделать что-то вроде:

functions.storage.bucket("bucket_name").object()...

Однако во всех примерах я видел, что «имя ведра» жестко закодировано. В моем проекте изображения хранятся в корзинах с именами пользователей. Поэтому, когда происходит событие записи, я хочу получить этот идентификатор пользователя. Есть ли способ сделать это? Примерно так (ниже)?

exports.optimizeImages = functions.storage.bucket("{uid}").object().onFinalize(async (object) => {

const uid = ???
...
})

1 Ответ

1 голос
/ 13 марта 2020

Когда вы объявляете триггер хранилища, вы присоединяете его только к одному сегменту. Если вы хотите инициировать несколько блоков, вы должны объявить несколько триггеров. Таким образом, каждая триггерная функция всегда должна знать, для какого блока она была запущена - вы можете просто жестко кодировать ее в реализации функции (она будет такой же, как та, которую вы указали в конструкторе функций, - просто используйте это значение повторно).

Если вам необходимо совместно использовать одну и ту же реализацию функции с несколькими триггерами в нескольких сегментах, вы, безусловно, можете проанализировать свойство object.bucket. Это похоже на приличный способ go.

...