Вы отправляете ответ клиенту с помощью:
res.status(200).json(comments)
Это устанавливает как минимум два заголовка (статус и тип ответа), а затем отправляет ответ.В следующий раз, когда вы получите обновление из базы данных, этот код снова запускается и снова пытается отправить два заголовка.Но в HTTP все заголовки должны находиться перед основной частью ответа.Таким образом, во второй раз, когда этот код выполняется, он выдает ошибку.
Если вы хотите продолжать отправлять больше данных клиенту, вам нужно будет использовать более примитивные методы объекта ответа, чтобы предотвратить отправку заголовков, илидругие незаконные данные.Хотя это возможно, это более сложно, чем вы думаете, так как клиент должен обрабатывать этот поток ответов, чего большинство клиентов не будут делать.
Я бы настоятельно рекомендовал взглянуть на альтернативу Дуга, а именно просто использоватьБаза данных Firebase Realtime от клиента напрямую.Таким образом, вы можете использовать имеющийся у него клиентский SDK, который обрабатывает это (и многие другие сложности) за кулисами.