I try to make register but when i put all information the app close in the post i have the error. i wanna make this this my code.
package com.example.aprendosiosi;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.FirebaseFirestore;
import java.util.HashMap;
import java.util.Map;
public class RegistersActivity extends AppCompatActivity {
Button btn_register;
EditText name,email,password;
FirebaseFirestore mFirestore;
FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registers);
mFirestore = FirebaseFirestore.getInstance();
mAuth = FirebaseAuth.getInstance();
name = findViewById(R.id.nombre);
email = findViewById(R.id.correo);
password = findViewById(R.id.contrasena);
btn_register = findViewById(R.id.btn_registro);
//evento del boton//
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//extrayendo el dato que se escriba//
String nameUser = name.getText().toString().trim();
String emailUser = email.getText().toString().trim();
String passUser = password.getText().toString().trim();
if( nameUser.isEmpty() && emailUser.isEmpty() && passUser.isEmpty()){
Toast.makeText(RegistersActivity.this, "Complete los datos", Toast.LENGTH_SHORT).show();
} else{
//creando un metodo para registrar//
registerUser(nameUser,emailUser,passUser);
}
}
});
}
//construyendo el metodo //
private void registerUser(String nameUser, String emailUser, String passUser) {
//prosedimiento para registrase//
mAuth.createUserWithEmailAndPassword(emailUser,passUser).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
String id = mAuth.getCurrentUser().getUid();
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("name", nameUser);
map.put("email", emailUser);
map.put("password", passUser);
mFirestore.collection("user").document(id).set(map).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
finish();
startActivity( new Intent( RegistersActivity.this, MainActivity.class));
Toast.makeText(RegistersActivity.this, "Usuario registrado", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(RegistersActivity.this, "Erro al guardar", Toast.LENGTH_SHORT).show();
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(RegistersActivity.this, "Erro al registrar", Toast.LENGTH_SHORT).show();
}
});
}
}
And this my error .
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.aprendosiosi, PID: 9539 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' on a null object reference at com.example.aprendosiosi.RegistersActivity$3.onComplete(RegistersActivity.java:70) at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.2:1) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8633) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
I try to make register but when i put all information the app close in the post i have the error.