Мой пример использования: я хочу сохранить в базе данных количество пользователей Firebase для быстрого и легкого доступа. Для этого у меня есть облачная функция, прослушивающая user.onCreate
, и она просто увеличивает поле в документе, используя атомарный FieldValue.increment
.
Вот код:
exports.createProfile = functions.auth.user().onCreate(async user => {
return Promise.all([
addProfileToDatabase(),
function() {
db.collection('someCollection').doc(docId).update({
count: admin.firestore.FieldValue.increment(1)
)}
}
])
})
Проблема: количество в базе данных становится больше, чем количество аутентифицированных пользователей, показанное на вкладке Аутентификация в Firebase. Я регулярно сбрасываю его на правильное число, а затем оно снова медленно увеличивается.
Я читал о регулировании записи в документе, но вместо этого это должно привести к меньшему числу, если вообще. Но почему счет в базе данных всегда превышает фактический счет?