У меня есть узел в моей базе данных в реальном времени, который имеет следующую структуру:
![enter image description here](https://i.stack.imgur.com/n1CgPm.png)
В моем файле машинописи (с использованием кода VS) у меня есть функция, которая запускается при удалении одного из дочерних элементов из узла users
и подсчитывает количество дочерних элементов, оставшихся после удаления:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
try {admin.initializeApp(functions.config().firebase);} catch(e) {console.log(e);}
// MIN AMOUNT OF USERS
const MIN_USERS_COUNT = 2;
// Callback triggered when event in users node is deleted from the realtime database
exports = module.exports = functions.database.ref('users').onDelete((change, context) => {
console.log(`number of children is ${change.numChildren()}`)
if (change.numChildren() >= MIN_USERS_COUNT) {
// DO some work ...
}
})
Если я разверну свою функцию на сервере, а затем удаляю пользователя из узла users
из базы данных в реальном времени, функция будет запущена правильно, и я смогу увидеть выходные данные журналов на моей панели Firebase.
Журналы, показывающие: количество детей 5 (например).
Проблема с тестом, приведенным выше, заключается в том, что мне нужно развернуть на prod, а затем вручную удалить узел (это отнимает много времени).
Я думал сделать то же самое, но делать это локально, чтобы иногда себя спасти.
Итак, как я могу эмулировать запуск события моей функции на терминале firebase functions:shell
перед его развертыванием, если я пытаюсь использовать что-то вроде myDatabaseFunction ?
Пока я пробовал это, но это не сработало:
myDatabaseFunction('DwpA5K4XM4ZjdYGaXUOLHEhC3Kr2, ET4q5SX0WccCESNaU61djdqnt0i1, StUsv09jDbXOCVCaCSstq7RtQbq2', {params: {group: 'a', id: 123}})
Я смотрю в этот блог и документацию , но я не смог найти то, что я пытаюсь сделать.