При запуске firebase 'on' в функции node.js, как мне закрыть соединение после того, как все записи были извлечены

Я запускаю firebase в функции node.js в AWS Lambda с Firebase Admin SDK. Каждый раз, когда запускается код, лямбда-функция завершает все, но достигает максимального времени ожидания (и, очевидно, истекает). Как закрыть соединение «включено» только после того, как все записи были извлечены.

firebase.database().ref("store").orderByChild('approved').equalTo(false).on('child_added', snapshot => { *logic in here* }

Вероятно, вам следует использовать метод once() в функции Lambda (которая запускается в ответ на события, а не постоянно прослушивает определенный узел).

Renaud Tarnec 10.09.2018 07:11

что возвращает функция once()? Будет ли он давать мне все записи в снимке как массив или как json? или что?

Ryan 10.09.2018 07:57

@Ryan Прочтите документы API, ссылки на которые есть в моем ответе. Также прочтите документацию по продукту. firebase.google.com/docs/database/admin/…

Doug Stevenson 10.09.2018 07:59

@DougStevenson Спасибо за это. Если бы я использовал on() для циклического перебора нескольких записей с помощью once(), как мне были бы представлены данные?

Ryan 10.09.2018 08:17

Один большой объект. Прочтите связанные документы для API и примеров.

Doug Stevenson 10.09.2018 08:31
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
5
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете on(), когда хотите прослушать изменение содержимого некоторого места в базе данных.

Если вам нужен одноразовый снимок всего в определенном месте, используйте вместо этого once().

Практически никогда не уместно использовать on () в среде бессерверного типа.

Другие вопросы по теме