Hey Marcio,
You mentioned that
"You put the condition to see if there is the same mobile and if returns -1 that's because it's unique among users. And you do the same thing for the other fields.
You can do it with aggregates, but you don't need to go server-side to do that query."
Of course that you need to go into the database to get this data.
Your solution can work... but only if you have the FULL list of users loaded from a query, what happens when you have 1 million users?
Not even mentioning that you are recommending using multiple ListIndexOf to get the uniqueness of the user.
Cheers,
Luís Almeida