GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Erro Firebase Autenticação de Usuário?

java
mobile
Tags: #<Tag:0x00007f3113ae29a0> #<Tag:0x00007f3113ae2720>

#1

Opa, não sei mais o que fazer,

O meu erro é o seguinte:

Estou tentando fazer uma Autenticação de email e senha com conexão com Firebase.
Quem puder, agradeço.

Edit.

package br.com.deniscarvasilva.hello;

import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class MainActivity extends AppCompatActivity {
    private FirebaseAuth mAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createUser();
    }

    public void createUser(){
        String email = "denis@denis.com.com";
        String password = "42378942";
        mAuth.createUserWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(MainActivity.this, "Deu certo",
                                    Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(MainActivity.this, "Nao deu certo",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }
}

#2

Esta opção está habilitada no firebase? O usuário está cadastrado no firebase?


#3

Não, não há cadastro nenhum lá ainda. A opção está habilitada


#4

Cara, fiz a mesma coisa há umas duas semanas, devido a um curso que estou fazendo e não tive problemas.
Segui todos os passos (de gerar o sha1 da aplicação, colocar no projeto firebase, pegar as chaves, colocar nos dois arquivos do gradle, depois incluir a dependência no build.gradle e incorporar as dependências nos arquivos java.
Talvez você precisa refazer alguns passos, para se certificar que está seguindo corretamente.
Eu não consigo te ajudar daqui por duas razões: não tenho android studio no computador do trabalho e o proxy bloqueia o firebase.


#5

precisa gerar o sha1? nao tinha visto isso. vou dar uma olhada. Onde voce gerou ele?


#6

olha o meu código como esta agora

nao vejo problemas nele, ele para o aplicativo quando eu inicio ele, e nao consigo pegar o bug. Qual aba eu consigo ver oque esta acontecendo?

package br.com.deniscarvasilva.hello;

import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class MainActivity extends AppCompatActivity {
    private FirebaseAuth mAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createUser();
    }

    public void createUser(){
        String email = "denis@denis.com.com";
        String password = "42378942";
        mAuth.signInWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(MainActivity.this, "Deu certo",
                                    Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(MainActivity.this, "Nao deu certo",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }
}

#7

Cara, se eu bem me lembro, o signInWithEmailAndPassword é para autenticar.
Acredito que você precise deste método, antes de tentar autenticar (até por que, quando você cria o usuário com sucesso, o mesmo já está autenticado)

firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});

#8

realmente, obrigado.

mas mesmo assim quando abre a aplicação, fecha quando chamo esse metodo


#9

Provavelmente está lançando alguma exceção.
Precisa dar uma debugada ou mesmo olhar atentamente ao console, assim conseguirá identificar o erro e tratar do mesmo.


#10

entao, isso que eu preciso saber, como faço isso? o erro sai no console? esse console nao seria o terminal?do lado de android monitor?


#11

achei, sai no android monitor, mas tem que ficar com ele aberto e pegar assim que der o erro, porque o erro sobe por causa da leitura do device.

o erro é este

03-24 12:03:16.938 30864-30864/br.com.deniscarvasilva.hello E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.deniscarvasilva.hello, PID: 30864
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.deniscarvasilva.hello/br.com.deniscarvasilva.hello.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method ‘com.google.android.gms.tasks.Task com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(java.lang.String, java.lang.String)’ on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘com.google.android.gms.tasks.Task com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(java.lang.String, java.lang.String)’ on a null object reference
at br.com.deniscarvasilva.hello.MainActivity.createUser(MainActivity.java:25)
at br.com.deniscarvasilva.hello.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:6245)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)


#12

null pointer, estranho… nao tem nenhum objeto na main que de pra dar null pointer (eu acho)


#13

Pesquisando por esta parte da mensagem, encontrei isto.
Pelo que entendi, você não instanciou o objeto mAuth, provavelmente tenha feito a declaração do mesmo, mas não o instanciou.


#14

sim!, achei também e faltava isso:

mAuth = FirebaseAuth.getInstance();

e liberar o cadastro e autenticação por e-mail la no banco de dados


#15

vlw mesmo pela ajuda.


#16

Por acaso você está seguindo o curso do Jamilton Damasceno, na udemy?
Pois eu fiz os mesmos passos quando passei por esta parte do curso.


#17

não, estou fazendo pela documentação mesmo. e um tutorial no youtube.


#18