Битва была. Это исторический факт, подтвержденный Новгородской первой летописью старшего извода - самым надежным источником по той эпохе.
Вопрос в масштабе. Советская и досоветская историография раздула локальное пограничное столкновение до размеров "великой победы", потому что нужен был образ князя-защитника для национальной мифологии.
Реальность:
-
Шведский отряд (вероятно 500-800 человек) высадился в устье Ижоры для разведки и закрепления торгового пути.
-
Александр с новгородской дружиной (200-300 конных воинов) совершил внезапную атаку на лагерь шведов.
-
Бой был коротким, потери с обеих сторон минимальны. Новгородская летопись называет 20 убитых новгородцев. Шведы отступили на корабли и ушли.
-
В шведских хрониках это событие действительно не упоминается - для них это была незначительная стычка на окраине, одна из десятков подобных.
-
Прозвище "Невский" Александр получил позже, уже после смерти. При жизни его так не называли.
Историки спорят о деталях, но отрицать сам факт столкновения нет оснований. Просто не надо представлять это как Куликовскую битву.