Прикрепите облачную функцию Firebase или кешируйте ее данные из вызова облачной функции. - PullRequest
0 голосов
/ 06 января 2019

У меня есть компонент веб-интерфейса, который состоит из диаграммы и нескольких различных фильтров, которые позволяют пользователям фильтровать данные по типу данных. Однако данные, которые они фильтруют, относительно велики, и поэтому я не хочу загружать их все на веб-страницу, а вместо этого использую облачную функцию firebase, которая выполняет фильтрацию. Проблема заключается в том, что пользователи обычно выполняют кучу фильтрации при использовании этого компонента, поэтому облачной функции не имеет смысла многократно загружать необходимые данные. Есть ли способ «прикрепить» облачную функцию к вызову и обновить ее без необходимости повторного извлечения данных или каким-либо образом кэшировать извлеченные данные из базы данных в месте, доступном для облачной функции, если это невозможно?

exports.handleChartData = functions.database.ref("chartData").onCall((data, context) => {
    // can I cache data here somehow
    // or can I have this function read in updates from user selected filters
    // without having to retrieve data again?
}

1 Ответ

0 голосов
/ 06 января 2019

Вы можете записать данные на локальный диск /tmp. Просто знайте, что:

  • Нет никакой гарантии, что данные будут там в следующий раз, так как экземпляры вращаются вверх и вниз по мере необходимости. Поэтому вам нужно будет проверить, существует ли файл при каждом вызове, и быть готовым создать его, когда его еще нет.
  • Дисковое пространство /tmp является RAM-диском, поэтому любые записанные файлы будут выходить из памяти, выделенной для ваших контейнеров Cloud Functions.
  • Вы не можете надежно поддерживать связь между прослушивателями, поэтому вы не сможете обновить кеш.

Также см .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...