Ver mensagens sem resposta | Ver tópicos ativos Hoje é 22 Nov 2019, 19:32



Este tópico está trancado, você não pode editar mensagens ou enviar respostas.  [ 4 Mensagens ] 
 [RESOLVIDO] Atribuir valor em variável estatica 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 30 Mai 2018, 23:20
Mensagens: 5
Mensagem [RESOLVIDO] Atribuir valor em variável estatica
Olá pessoal,

Estou com um problema aqui, tenho uma variável declarada como public static que chamei de tipousuario.

ao fazer login em minha aplicação, quero buscar pelo e-mail informado o tipo de usuário e guardar esse tipo nessa variável estática.

O valor da variável não está sendo atualizado, o que está de errado?


            usuarios.setEmail(mEmailView.getText().toString());
            usuarios.setPassword (mPasswordView.getText().toString());
            firebaseAuth.signInWithEmailAndPassword(usuarios.getEmail(),usuarios.getPassword ()).addOnCompleteListener(new OnCompleteListener<AuthResult>()
            {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {

                    if (task.isSuccessful())
                    {
                        DatabaseReference databaseUser = FirebaseDatabase.getInstance().getReference();
                        Query query = databaseUser.child("Usuarios").orderByChild("email").equalTo(usuarios.getEmail());
                        query.addListenerForSingleValueEvent(new ValueEventListener()
                        {
                            @Override
                            public void onDataChange(DataSnapshot datasnapshot)
                            {
                                Usuarios Userselecionado = new Usuarios();
                                Userselecionado = datasnapshot.getValue(Usuarios.class);
                                RealTime.tipousuario = Userselecionado.getTipo ();
                            }

                            @Override
                            public void onCancelled(DatabaseError error)
                            {

                            }
                        });
                        showProgress(true);
                        finish();
                        startActivity(new Intent(getApplicationContext(), MainActivity.class));
                    }else {
                        mPasswordView.setError(getString(R.string.error_incorrect_password));
                    }
                }
            });
 


Quando chega nessa linha

RealTime.tipousuario = Userselecionado.getTipo ();

Era para atribuir o tipo de usuário, mas isso não está acontecendo.


Editado pela última vez por samesdavis em 23 Mar 2019, 16:49, num total de 1 vezes



11 Mar 2019, 14:23
Perfil
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: Atribuir valor em variável estatica
Olá samesdavis,

O código retorna algum erro?
Creio que ele está dando erro em algum trecho, verifica o seu log. Caso retorne, poste-o aqui por favor...

Att,
Maicon.

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


11 Mar 2019, 18:56
Perfil WWW
What is Android?
What is Android?

Data de registro: 30 Mai 2018, 23:20
Mensagens: 5
Mensagem Re: Atribuir valor em variável estatica
maiconn escreveu:
Olá samesdavis,

O código retorna algum erro?
Creio que ele está dando erro em algum trecho, verifica o seu log. Caso retorne, poste-o aqui por favor...

Att,
Maicon.


O DataSnapshot está vindo com esse valor

DataSnapshot { key = Usuarios, value = {1={name=Sames Davis, email=samesd@gmail.com, password=***, tipo=1}} }

Porém quando faço a atribuição nessa linha

Userselecionado = datasnapshot.getValue(Usuarios.class);

dá esse erro

Can't convert object of type java.util.ArrayList to type bmvr.com.br.batistamemorial.Classes.Usuarios

A variável Userselecionado é gerada desta forma:

Usuarios Userselecionado = new Usuarios();

Tentei assim também

Realtime.tipousuario = (String) datasnapshot.child("tipo").getValue();

Mas retornou como Null


11 Mar 2019, 19:04
Perfil
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: Atribuir valor em variável estatica
Opa, samesdavis

Pelo que eu entendi, essa DataSnapshot retorna uma lista de usuários, e não um só, vc terá que iterar sobre essa lista para pegar o valor...

Dê uma olhada nesse link por favor: https://stackoverflow.com/questions/453 ... tasnapshot

no seu método onDataChange, faça uma iteração para pegar os users;

Você precisa intender a estrutura de dados que tem dentro do DataSnapshot... creio que deve ter uma lista de usuários... que nesse caso retorna um só.. então de vc deve pegar ele pra depois pegar o tipo
@Override
  public void onDataChange(DataSnapshot dataSnapshot) {
     Usuario usuario = (Usuario) dataSnapshot.child("Usuarios");
     // AQUI VC atribui o esquema...
}

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


12 Mar 2019, 12:59
Perfil WWW
Mostrar mensagens anteriores:  Organizar por  
Este tópico está trancado, você não pode editar mensagens ou enviar respostas.   [ 4 Mensagens ] 

Quem está online

Usuários vendo este fórum: ademir.carvalhojr, AdrianoMM, aechiara, Alexandre de Queiroz, alexandrefett, alexandreizumi, Alexsandro Tirloni, am2net, americano, Andreid, Androidthebest, avsouza, Biel, bigr ecreio, bomcabelo, brenno, C-3PO, camilodev, canaville, Carlos Alexandre, cesao, Chewbacca, craudiao, culumin, dalmeidabr, dariosena, Deiapinh, denisfln, Diego, dkclan, dmd, dnakamashi, dramos, drjunior, edsonel, Eduardo, EduardoYC, estratecnologia, felipe.buarque, ffardo, fgalvão, frances135, Gnomo, gphonemania, Guilherme Cobain, HanNiBaLSeTDf, helder84, Heritrix, hugomarinho, HyagoRules, icarodavi, ijsilvestre, jacksaum, Jaison, jhou, johnnyjx, juliancesar, Kureiton, levita, Lincoln, loferreira, LucasNascimento, Lucious, lufreitas, luizneto79, Marcelo Alves, marcelocastellani, mateusff, mauriciomag, mrkensley, MSN NewsBlogs, neiesc, neuhaus, nrsf, Nute Gunray, oliverlessa, paulo.weber, peixe, peterson.bah, pingumanbr, Princesa Léia Organa, r.wil, Rainha Amidala/Padmé, rananfu, raninhofernandes, rdchaves, Renan, renata, robsonoracle, rodrigo aguiar, Roll, Romulo, rotmeil, Rufino, ruizsa, sasuke_sarutobi, SidneiCP, siker C3PO, srmoreira, Telekom [Bot], Teodoro, thiago20, tiago, tiagocordeiro, tiagofalcao, ton.soares, Webnet, williamcmello, wilson.slima, YaCy e 12 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