может просто onDestroy не вызываеться при смене аккаунта и оно отображает предыдущий лейаут?
Действительно, при возврате к экрану входа/регистрации я использую просто startActivity() а потом ещё раз startActivity() при входе внутрь аккаунта. Однако лэйаут с уведомлениями - отдельный DialogFragment, который показывается по клику на кнопку в боковом меню.
Т.е. лейауты явно отличаются у двух пользователей, это видно, поэтому это точно не предыдущий лэйаут.
Остальные элементы UI меняются правильно, т.е. при входе подгружаются нужные данные, успешно проходит авторизация, userID меняется нормально, имя и т.д.
valueEventListener бунтует только тогда, когда, условно говоря, создаёшь объект, который отправляешь потом в FirebaseDatabase.
Т.е. прям в логах видно, что userId почему-то меняется на id прошлого вошедшего пользователя. Например, может быть такой лог из внутренностей valueEventListener-а (Log.e("id", userId)):
id: uid1
id: uid1
id: uid1
id: uid2
id: uid2
id: uid2