I am creating an application for android and I need to find a user in the database by nickname and after it is found I need to get his id. The problem is that the database does not find a user with this nickname, although there is such a user in the database and I do not understand the problem, maybe someone can tell me.
here is my code:
private SpannableString makeSpannable(String comment) //comment = "Hahdgd @aimness2"
{
    
    Pattern pattern = Pattern.compile("[@][a-zA-Z0-9-.]+");
    SpannableString spannableString = new SpannableString(comment);
    Matcher matcher = pattern.matcher(spannableString);
    while (matcher.find())
    {
        int start = matcher.start();
        int end = matcher.end();
        ClickableSpan span = new ClickableSpan() {
            String email;
            @Override
            public void onClick(@NonNull View widget) {
                
                String substr = comment.substring(start+1, end);
                findUserUid(substr);
                
                SomeUserProfileFragment someUserProfileFragment = new SomeUserProfileFragment();
                Bundle args = new Bundle();
                args.putString("UserData", uid);
                someUserProfileFragment.setArguments(args);
                getActivity().getSupportFragmentManager().beginTransaction()
                        .add(R.id.frame_container, someUserProfileFragment)
                        .addToBackStack(null)
                        .commit();
            }
        };
        spannableString.setSpan(span, matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    return  spannableString;
}
private String findUserUid(String nick)
{
    DatabaseReference db =  FirebaseDatabase.getInstance().getReference("UserData");
    Query query = db.orderByChild("nickname").equalTo(nick);
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
           if(snapshot.exists()) {
               for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
                   uid = "" + dataSnapshot.child("uid").getValue(String.class);
               }
           }else
           {
               Log.i("hahahha", "loch");
           }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError error) {
        }
    });
    return uid;
}

 
    