Я тестировал это на нескольких компьютерах Mac, закрывая крышку и вступая в спящий режим, onDisconnect даже не запускается.
Можете ли вы, ребята, подтвердить, что это известная проблема, и есть ли способ обойти ее?
onDisconnect – это событие, которое запускается на хосте (Firebase), а не на вашем клиенте. Он не может терпеть неудачу на основе метода отключения на клиенте. После закрытия клиентского сокета (после таймаута) срабатывает разъединение.
Если он не работает, то: а) клиент фактически не отключается или б) у клиента нет разрешения на внесение изменений в запросы onDisconnect (например, у него нет разрешений на запись).