Всем привет. Я, очевидно, чего-то не понимаю, но почему в этом куске кода в любом случае вызывается switchIfEmpty, а не только когда Maybe оказывается пустым? getFcmToken возвращает Maybe<FcmInfo>. register(String token) возвращает также Single<FcmInfo>.