Ответ 1
На самом деле разница.
Socket.io - это библиотека javascript для управления сокетами. В примере с веб-чатом вы создаете сокеты:
- клиент на сервер
- Сервер для клиента (ов)
То есть вы контролируете все конечные точки и используете socket.io как инструмент для обмена данными между вашими конечными точками.
В отличие от этого, используя firebase, вы фокусируетесь только на 1 (клиент на сервер)
Плюсы и минусы использования сервиса по сравнению с собственной инфраструктурой - это другой предмет и сильно упрямый.