As others have noted, it would be much easier for users to remember things that they have generated themselves - e.g. an e-mail or username rather than a nonsensical ID. If you want users to connect to each other, you don't need to expose your internal representation of their instance; simply use something else that uniquely identifies them.
However, if you really want your users to have unique IDs that you generate for them, you can reduce the length of these IDs by mixing characters and numbers (though make sure they are represented with a font that can easily distinguish between 0 and O and 1 and I). Characters could also be good enough, though I would suggest against mixing upper and lower case because it will already be difficult enough for your users to remember/describe this ID without needing to distinguish between the often similar upper/lowercase letters. If you want the IDs to be more legible and identifiable, use upper case. If you want the users to scan many of these IDs to find the one they want, use lower case. If the IDs are particularly long, I would also suggest putting some sort of separator throughout to make it easier to keep track of and describe:
This is what is typically done by large companies such as Microsoft and Nintendo.