Я пытаюсь реализовать распределенный счетчик из трех сегментов на /counters/{i}
.
Изначально я хочу проверить, существует ли документ / коллекция, если ее не нужно создавать заново, с помощью userCountустановите на 0.
Если он существует, то вышеуказанный шаг пропускается, а userCount увеличивается на единицу.
Как мне это сделать?Это мой код:
incrementUserCount() {
// First check to see if user exists
for (let i = 0; i < environment.numberOfShards; i++) {
const newShardReference = this.afs.firestore.collection('counters').doc(i.toString());
this.afs.firestore.batch().set(newShardReference, { userCount: 0 });
}
this.afs.firestore.batch().commit();
// Steps to increment user count
// const shardId = Math.floor(Math.random() * environment.numberOfShards).toString();
// const shardReference = this.afs.firestore.collection('counters').doc(shardId);
// return this.afs.firestore.runTransaction(t => {
// return t.get(shardReference).then(doc => {
// const newCount = doc.data().count + 1;
// t.update(shardReference, { count: newCount });
// });
// });
}