Firebase Cloud Functions

Незадолго до Google I/O я попробовал Firebase Cloud Functions в мессенжере-Вселенной Ты космос. И обнаружил, что не чётко работает подписка на событие добавления в базу данных.

Вот так оно было объявлено:

exports.sendFollowerNotification = functions.database.ref('/{galaxyUid}/messages').onWrite(event => { ... });

Казалось бы, когда добавляется новое сообщение в /{galaxyUid}/messages как дочерний узел, событие должно сработать. Например, при появлении:

https://saturn-6b9e1.firebaseio.com/4ee9bf31-4a5c-4a83-94c7-99a9f48aee38/messages/-KkidPlqZ5WsiDN9mb_c

будет вызвана наша функция.

Однако, когда в messages уже очень много дочерних узлов, событие просто не вызывается и в логах отсутствует какая-либо информация, объясняющая эту ситуацию. Я думаю, что есть какое-то превышение квоты бесплатного тарифного плана.

Как быть?

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

exports.sendFollowerNotification = functions.database.ref('/{galaxyUid}/messages/{planetUid}').onWrite(event => { ... });

Это работает, и дополнительно даёт информацию о планете, которая была добавлена в галактику.