Ver mensagens sem resposta | Ver tópicos ativos Hoje é 10 Dez 2019, 12:31



Responder Tópico  [ 1 Mensagem ] 
 DUVIDA SOBRE FIREBASE COM ATUALIZAÇÃO DE DADOS 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 25 Abr 2019, 11:17
Mensagens: 1
Mensagem DUVIDA SOBRE FIREBASE COM ATUALIZAÇÃO DE DADOS
Olá, poderiam me ajudar? tenho o seguinte problema: estou fazendo um cadastro de usuarios pelo firebase, assim como está na foto, pois então, o problema que estou tendo é que a classe usuarios pega os dados fornecidos e depois numa aba de configurações consigo atualizar nome e foto, ali pelo firebase, atualizo normalmente em usuarios pelo id do usuario logado, o problema está em contatos. Como eu não quero que cada contato tenha todos os outros contatos registrados no banco de dados, eu defini um campo de cadastro no aplicativo que o usuario ao logar deve clicar para adicionar um contato, e se esse contato existir adiciona na lista dele, portanto pegando idUsuarioLogado, e o texto passado verifica em base64 se existe um idUsuarioContato, criando assim um nó filho de idUsuarioLogado:

Imagem

Definindo da seguinte maneirra:

firebase = firebase.child("contatos")
.child( identificadorUsuarioLogado )
.child( identificadorContato )
Usuario contato = new Usuario();
contato.setIdentificadorUsuario( identificadorContato );
contato.setEmail( usuarioContato.getEmail() );
contato.setNome( usuarioContato.getNome() );
contato.setFoto(usuarioContato.getFoto());
firebase.setValue( contato );


Dessa forma ele pega o id do usuario que está logado como primeiro nó, e como um nó filho, nesse método de cadastrar do mainActivity eu recebo um texto, por um editText que vai verificar se o email em base64 existe, se existir ele adiciona na lista de contatos desse usuario logado, setando tudo que o usuario ja possui.
Mas caso eu vá depois em configurações e chamo o método de atualizar foto e atualizar nome, ele atualiza direto na child usuarios, que é o que está definido na classe Usuario, mas não estou conseguindo uma maneira de pegar esse identificadorContato que defini somente nessa mainActivity que recebe atraves do texto na hora do cadastro. Tem alguma forma de fazer a verificação do segundo nó filho dos ids estando desse jeito? E dessa forma atualizar os dados chamando atualizaUsuario, vou deixar o codigo de como está atualmente essa parte de atualização da foto:

// CLASSE USUARIO FIREBASSE
public static boolean atualizarFotoUsuario(Uri url){

try{
FirebaseUser user = getUsuarioAtual();
UserProfileChangeRequest profile = new UserProfileChangeRequest.Builder()
.setPhotoUri(url)
.build();

user.updateProfile(profile).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (!task.isSuccessful()){
Log.d("Perfil", "Erro ao atualizar foto de perfil");
}
}
});
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}

// CLASSE CONFIGURAÇÕES QUE CHAMA O MÉTODO
public void atualizaFotoUsuario(Uri url){
boolean retorno = UsuarioFirebase.atualizarFotoUsuario(url);
if(retorno){
usuarioLogado.setFoto(url.toString());
usuarioLogado.atualizar();

Toast.makeText(ConfiguracoesActivity.this,
"Sua foto foi alterada!",
Toast.LENGTH_SHORT).show();
}


Qualquer ajuda possivel seria incrivel, ja estou há tempos tentando varias maneiras de contornar essa situação e nenhuma com sucesso até então, nunca lidei com dois nós id base64 dessa forma.
Ao meu ver o que tentei fazer foi com que a classe Usuario alem de receber o Id, também conseguisse receber esse idContato que é definido na classe main, e assim atualizasse os contatos filhos do usuario logado, mas não consegui implementar nada do tipo com sucesso, tudo quebra algo no código ou para de funcionar, tendo que voltar ao ponto inicial.
Agradeço, abraços.


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.


25 Abr 2019, 11:22
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 1 Mensagem ] 

Quem está online

Usuários vendo este fórum: Aderbal Nunes, aechiara, Alan Unger, alexandrefett, alexandreizumi, alsimoes, aluclinux, Augusto, austonrd, Beru Lars, Biel, bruno.abd, camilodev, car.demarco, Cassius, comolatti, Corneta, cosmotheoro, Cristranus, danielbfranco, Darth Vader, DAVINCE, Deiapinh, Delão, denisfln, dentimskol, digiwise, Dudi_FC, edervieira, elisa, everaldo, fabric01, fraga, frances135, freak, Gabriel, geeks, genildof, glmsistemas, Google Android, guitarro17, HAMSES, helder, Heritrix, Igor_M, ixian, jacard, jackstuard, jairo, jcorreajr, jefficojava, Jenius, jijo, joaquimfoto, jonasminas, Jota, juliana_costa, Juniorvs, kennedyximenes, Liviosousa, lkunta, Lucious, luizfilipe, Luke Skywalker, Lúcio Zanette, malucouto, mam_computer, MarceloMC, Marco Magoo, marianatallas, marlovich, mauriciobreide, mikasjau, Moisés Souto, mrangel, MSPRAFAEL, mvoto, n3t0, neiesc, nfaria, nullPointer, oliveiramc, On_7, phpower1, pilon, Qui-Gon Jinn, Rafael Felix, rafsantos, Rainha Amidala/Padmé, reginaldo, reginaldofdias, regisjj, renata, renegheller, retardad0, rlecheta, rodrigo_mg, rodrigoinnova, ronamore, Rufino, schiroky, SERGIO RODRIGUES, sjta, skcratch, srmoreira, Stormtrooper, suportecr, talves, Telekom [Bot], Thelemita, tirloni, ttaranto, ubiratan, Vania, vicfalmac, viniciusluiz, wcaciano, Wenceslau, Yuri, Zam Wesell e 22 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi