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?
Você está criando sua database com a raiz do UID do usuário?
R
rodriguesabner
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)
L
leandrooooo
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.
R
rodriguesabner
Suponhamos que vc tem a classe já implementada:
Classe Usuario
id_filho
id_mestre
nome
email
.....
DatabaseReferencereference=FirebaseDatabase.getInstance().getReference("SuaTabela");reference.addValueEventListener(newValueEventListener(){@OverridepublicvoidonDataChange(DataSnapshotdataSnapshot){for(DataSnapshotsnapshot: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(DataSnapshotds:snapshot.getChildren()){Usuariousuario=ds.getValue(Usuario.class);//printa de novoSystem.out.println(ds);System.out.println(usuario.getEmail());}}}@OverridepublicvoidonCancelled(DatabaseErrordatabaseError){}});
L
leandrooooo
Entendi, legal … funcionou. Obrigado.
Mais utilizando uma query igual abaixo não funcionada