Прежде всего, вы не можете многое сделать в клиентском приложении, чтобы помочь в этой ситуации. Все, что вы сделаете для компенсации этого, будет в облачных функциях.
Во-вторых, вы должны предполагать, что события могут быть доставлены не по порядку. Удаление может быть обработано облачными функциями перед созданием. Если ваш код не обрабатывает этот случай, вы можете ожидать несоответствия.
Вы сказали: «Я не хочу отслеживать каждый отдельный объект, который я создаю / удаляю», но факт в том, что этоэто лучший вариант, если вы хотите последовательную обработку событий, которые могут произойти не в порядке. Нет легкого выхода из этой ситуации, если вы используете облачные функции. Кроме того, ваши функции должны быть идемпотентными, чтобы они могли обрабатывать события, которые могут быть доставлены более одного раза.
Одна альтернатива - избегать внесения изменений в документы и вместо этого передавать объекты «команда» в облачные функции. что сказать ему то, что должно измениться. Это может немного помочь, но вы должны также предположить, что эти команды могут поступать не по порядку.
Это все часть обратной стороны серверных серверных частей. Плюс в том, что вам не нужно настраивать, управлять и освобождать экземпляры сервера. Но ваш код должен быть устойчивым к этим проблемам.