У меня две коллекции, виноград и еда. Когда я удаляю виноград, я хочу найти все продукты, связанные с этим виноградом, а также удалить их и обновить количество пар. Ассоциация существует во вложенном массиве ключей с элементом питания.
Я использую базу данных Firebase Realtime с функциями Ioni c 5 и Google Cloud. У меня есть другие рабочие функции, поэтому я исключил проблемы с развертыванием и средой.
Структура данных выглядит следующим образом:
Моя облачная функция развертывается без ошибок, но, похоже, не срабатывает при удалении винограда с клиента. Виноград не удаляется ни из каких пар.
index. js
const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
// Other working functions
exports.deleteGrapePairings = functions.database.ref('grapes/{grapeid}').onDelete(async (snap) => {
const grpRef = snap.ref;
const collectionRef = functions.database.ref('grapes/' + grpRef + '/pairings');
return collectionRef.once('value', function(snapshot){
snapshot.forEach(function(childSnapshot){
const key = childSnapshot.key;
functions.database.ref('pairings/' + key + '/grapes/' + grpRef).remove();
resetPairingCount(key);
});
});
});
function resetPairingCount(key){
const counterRef = functions.database.ref('/pairings/' + key + '/pairingcount');
const collectionRef = functions.database.ref('/pairings/' + key + '/grapes');
const messagesData = collectionRef.once('value');
return counterRef.set(messagesData.numChildren());
}
Как я могу удалить виноград из связанных пар и обновить счетчик пар, используя облачную функцию?