Auth0 guarantees that the global user ID (the sub
in the ID token, i.e. auth0|5dfae7feb435c60e955956e7
) uniquely identifies an identity (there will be no collisions from users coming from other identity providers). You can use that ID to look up the user if you need to.
You should definitely avoid using the connection’s user ID (the part that comes after the pipe character), and treat the user ID as an opaque string without attempting to parse it in any way.
As for storing other information about the user, like the email address, it could be a good idea both for optimization (queries can be answered fully from your database) but also because some data can change over time and Auth0 will only provide a snapshot of what the user looks like when queried.
Not sure if that answers your questions fully, happy to clarify if needed.