Хорошего дня.Первый;Я хотел бы поблагодарить этого пользователя.https://stackoverflow.com/a/52982781/11320646 Я хочу, чтобы вы знали, что я новичок в написании кода.Я должен тренировать проект.Функция этих кодов (включая ссылку, «решение») такова:
customers/{id}
подсчитывает потребителей здесь и записывает здесь: metadatas/customers, {count:123456}
.
Но я хочу добавитьсчетчик здесь:
groups/{groupID}/posts/{postID}
и я должен написать здесь счет:
metadatas/{groupID}/counts, {count:123456}
Но эти коды пишут:
metadatas/posts, {count:123456}
Как добавить слой groupID
?
Я пробовал много вещей, но у меня ничего не получилось.
Я успешно закончил подсчет с этими кодами, я активировал опцию повтора, если она не удалась.Я получил отличный результат.В то же время было добавлено более 100 постов, и результат отличный.мои коды здесь:
const executeOnce = (change, context, task) => {
const eventRef = firestore.collection('events').doc(context.eventId);
return firestore.runTransaction(t =>
t
.get(eventRef)
.then(docSnap => (docSnap.exists ? null : task(t)))
.then(() => t.set(eventRef, { processed: true }))
);
};
const documentCounter = collectionName => (change, context) =>
executeOnce(change, context, t => {
// on create
if (!change.before.exists && change.after.exists) {
return t
.get(firestore.collection('counts')
.doc(collectionName))
.then(docSnap =>
t.set(docSnap.ref, {
count: ((docSnap.data() && docSnap.data().count) || 0) + 1
}));
// on delete
} else if (change.before.exists && !change.after.exists) {
return t
.get(firestore.collection('counts')
.doc(collectionName))
.then(docSnap =>
t.set(docSnap.ref, {
count: docSnap.data().count - 1
}));
}
return null;
});
exports.customersCounter = functions.firestore
.document('denemeicerikler/{grupID}/icerikler/{postID}')
.onWrite(documentCounter('icerikler'));