Я пробовал пример счетчика приращений (https://github.com/firebase/functions-samples/tree/master/child-count) с облачными функциями, который ссылается на базу данных реального времени, но не на Firebase Firestore.
Я слежу за документом Firestore и попробовал некоторые изменения. Все еще сталкиваюсь с проблемойи не могу запустить этот код для нового документа firestore. Я пишу облачную функцию впервые, и я не уверен, что написал это правильно.
exports.countlikechange = functions.database.ref('/posts/{postid}/likes/{likeid}').onWrite(
async (change) => {
const collectionRef = change.after.ref.parent;
const countRef = collectionRef.parent.child('likes_count');
let increment;
if (change.after.exists() && !change.before.exists()) {
increment = 1;
} else if (!change.after.exists() && change.before.exists()) {
increment = -1;
} else {
return null;
}
// Return the promise from countRef.transaction() so our function
// waits for this async event to complete before it exits.
await countRef.transaction((current) => {
return (current || 0) + increment;
});
console.log('Counter updated.');
return null;
});
Я хочу обновить счетчик в родительском документе.