У меня есть документ, содержащий поле, которое представляет собой массив целых чисел, этот документ создается один раз в день, 7 дней в неделю с помощью триггера onCreate()
.Мне нужно подсчитать вхождения каждого элемента в массиве.В другом приложении я сделал это с get()
затем set()
(или update()
в этом отношении).Я запустлю цикл for в массиве и добавлю все обещания в массив обещаний, и в конце: Promise.all{promisesArray}
.
Только что узнал о транзакциях, и он работает нормально для моего самого базового JavaScript.
Мой вопрос: какой из них мне следует использовать, какова польза от использования транзакции в моем случае, если таковая имеется?Документ создается администратором, а не конечным пользователем, это не значит, что он будет создан миллионами пользователей.
Ниже приведен код, который я использую для подсчета случаев:
// Ref.get() then Ref.update()
promisesArray.push(docRef.get()
.then(doc => {
return docRef.update('count', doc.data().count + 1);
})).catch(error => {
console.log("Error" + error);
});
// Using a Transaction
promisesArray.push(firestore.runTransaction(transaction => {
return transaction.get(docRef)
.then(doc => {
return transaction.update(docRef, {
count: doc.data().count + 1
});
});
}).catch(error => {
console.log("Error" + error);
}));