Firebase (Realtimea/Auth) Android UID

Pessoal…

Tem o app que a estrutura o realtime database (firebase) é baseada no UID gerado ao criar (Email/Senha) o usuário no firebaseauth.

Até aqui tudo bem, agora estamos querendo implementar uma nova rotina que este usuario acima pode cadastrar novos usuários para sua empresa, e eles podem tem acesso ao sistema/dados.

Qual a melhor forma desses novos usuários ter acesso ao dados do banco já que o UID desses usuários não serão iguais do usuário que criou a conta e cadastrou todos os dados?

Não sei se consegui ser claro.

Valeu

Acho que tem algo errado ai,

Você está criando sua database com a raiz do UID do usuário?

Você cria um UID (usuario mestre) e dentro dele vc coloca os outros UIDS (usuarios dos usuarios)

Então ficaria:

A54FSAFA3SS52Q (Usuário Mestre)
    - LKFDJSLGDF15613 (Usuário Filho 1)
    - OIHIOGFJHLER984 (Usuário FIlho 2)

POJFDKGKDFMGFG (Usuário Mestre)
    - KGJSDLKJGJLDSKL (Usuário Filho 1)
    - 465DS456G4S5GSA (Usuário FIlho 2)

Entendi, outra dúvida, exemplo abaixo

POJFDKGKDFMGFG (Usuário Mestre)
- KGJSDLKJGJLDSKL (Usuário Filho 1)
     nome
     idade
     email

Não sabendo as duas chaves (mestre/filho) é possível na query eu encontrar determinado email?

Se sim, como eu faria?

vlw.

Suponhamos que vc tem a classe já implementada:

Classe Usuario
  id_filho
  id_mestre
  nome
  email
  .....

  DatabaseReference reference = FirebaseDatabase.getInstance().getReference("SuaTabela");
        reference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        //aqui vc printa pra saber o que ele ta pegando:
                        System.out.println(snapshot);
                        //Nao vai pegar o q vc quer, tem que fazer mais um for:
                           for(DataSnapshot ds: snapshot.getChildren()){
                               Usuario usuario = ds.getValue(Usuario.class);
                              //printa de novo
                              System.out.println(ds);
                              System.out.println(usuario.getEmail());

                          }
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

Entendi, legal … funcionou. Obrigado.

Mais utilizando uma query igual abaixo não funcionada

Query query = databaseReference
            .orderByChild("email")
            .equalTo("ze_mane@gmail.com");

Isso daria ou vou ter checar com uma condição para localizar o email que eu quero?

Mais desde já muito obrigado.