Например у меня в проекте возможен логин через два провайдер. Гугл и фейсбук.
не все соцсети отдают почту юзеров, но все отдают его уникальный идентификатор внутри своей сети. Поэтому ты должен сохранять информацию об внешнем id и из какой он соцсети. А еще юзер может поменять почту, в одной соцсети, а в другой нет, и т.п.
Юзер нажал лайк, я делаю запрос в бд с почтой текущего юзера и записываю текущий пост как лайкнутый.
нет, почту ты используешь только для идентификации юзера, вся внутренняя работа уже не с ней, а с внутренними id.