подсмотрел правильное решение, там сделано через цикл. Я сделал через рекурсию, видно что одну проверку пропустило, одну нет, вообще не пойму что не так плюс добавление в список и возврат имени совсем сбивает с толку, добавляю же и возвращаю с одной проверкой разобрался, вместо
if(userName.getData() != null)
должно быть
if(!userName.getData().isEmpty)
но почему не добавляет в список, в чем проблема