How to prevent from creating an obsolete account for a returning user

There is an application that for many users is a daily driver but just for a short period of time. Then they would probably uninstall it or change their phone before they need to use it again, and return to using it extensively after some period of time. Within the app, they have created some content that they would want to come back to. Let's say it is a vacation planning app.

Or: there is an app people log into and then never need to log in again unless they change their phone.

The following scenario is like this: when using the app for the very first time, they create an account using one of the available options: connect with FB & Google or using their email address.

Regardless the way they logged in previously, the next time they need to sign in once again they again can see the same list of options: FB, Google or email. Let's assume they don't remember the method they logged in previously (but they know they used it before so they do have an account). They could choose to restore access to their email based account but they hit one of the social logins instead. As a result, they end up with another account created.

What would be some nice and efficient way to avoid it?