У меня есть функция, запускаемая HTTP, которая возвращает номер приращения каждый раз, когда вызывается конечная точка. Код выглядит следующим образом:
export const reserve = functions.https.onRequest((req, resp) => {
cors(req, resp, async () => {
if (req.method.toLowerCase() !== 'post') {
resp.status(405);
resp.end();
} else {
const path = `counter`;
const ref = firebase.database().ref(path);
const oldCount = (await ref.once('value')).val();
await ref.set(oldCount + 1);
resp.status(200).send({
number: oldCount
});
resp.end();
}
});
});
Проблема в том, что если 2 вызова очень близки друг к другу, есть ли вероятность, что функция может вернуть одно и то же число? Если да, то есть ли способ предотвратить это?