The register button is not functioning correctly, It gives me authentication failed toast. it seems like my strings for a create a user with email and password are correct but it still wont work.
What can I do? please help if you can.
Java File:
package com.example.ahmadsapp; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.app.DatePickerDialog; import android.app.Dialog; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TextView; 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; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import java.util.Calendar; public class signup extends AppCompatActivity implements View.OnClickListener { EditText ETname, ETgmail, ETpassword; Button register,Bdateofbirth; SharedPreferences sp; private FirebaseAuth mAuth; FirebaseDatabase firebaseDatabase; DatabaseReference databaseReference; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_signup); mAuth = FirebaseAuth.getInstance(); firebaseDatabase = FirebaseDatabase.getInstance(); sp = getSharedPreferences("detail", 0); String userdfn = sp.getString("firstname", null); String userdgamil = sp.getString("gmail", null); String userduser = sp.getString("user", null); String userdpass = sp.getString("password", null); ETname= findViewById(R.id.ETsignupname); ETgmail = findViewById(R.id.ETsignupgmail); ETpassword = findViewById(R.id.ETsignuppassword); register = findViewById(R.id.signupbutton); Bdateofbirth = findViewById(R.id.Bdateofbirth); register.setOnClickListener(this); } @Override public void onClick(View view) { if (view == register) { register(ETgmail.getText().toString(), ETpassword.getText().toString()); } if (view == Bdateofbirth) { dialogDOB(); } } private void register(String User, String Password) { mAuth.createUserWithEmailAndPassword(User, Password) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { addClassToFirebase(); Intent intent = new Intent(signup.this, MainActivity.class); intent.putExtra("etsufn", ETname.getText().toString()); startActivity(intent); } else { // If sign in fails, display a message to the user. Toast.makeText(signup.this, "Authintication failed", Toast.LENGTH_SHORT).show(); } // ... } }); } private void addClassToFirebase() { String uid = mAuth.getCurrentUser().getUid().toString(); User u = new User(uid, ETname.getText().toString(), ETgmail.getText().toString(), ETpassword.getText().toString(), Bdateofbirth.getText().toString(), ""); databaseReference = firebaseDatabase.getReference("Users").push(); u.key = databaseReference.getKey(); databaseReference.setValue(u); } private void dialogDOB(){ Calendar calendar = Calendar.getInstance(); int d = calendar.get(Calendar.DAY_OF_MONTH); int m = calendar.get(Calendar.MONTH); int y = calendar.get(Calendar.YEAR); DatePickerDialog datePickerDialog = new DatePickerDialog(signup.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { i1=i1+1; String date = i + "/" + i1 + "/" + i2; Toast.makeText(signup.this, date, Toast.LENGTH_SHORT).show(); Bdateofbirth.setText(date); } }, d, m, y); datePickerDialog.show(); } }
XML File:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".signup" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome to the signup page" android:layout_gravity="center" android:textSize="25dp" android:id="@+id/TVsignup"/> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="name" android:textSize="25dp" android:gravity="center" android:layout_gravity="center" android:id="@+id/ETsignupname" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="G-Mail" android:textSize="25dp" android:gravity="center" android:layout_gravity="center" android:id="@+id/ETsignupgmail" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="Password" android:textSize="25dp" android:gravity="center" android:layout_gravity="center" android:id="@+id/ETsignuppassword" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Bdateofbirth" android:text="Date of birth" android:gravity="center" android:onClick="onClick" android:layout_gravity="center"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="Register" android:layout_gravity="center" android:id="@+id/signupbutton" /> </LinearLayout>
the strings I filled in:
[enter image description here][1] [1]: https://i.stack.imgur.com/2d29O.png
Advertisement
Answer
When a task fails, it contains an exception that explains the reason of the failure. Log this reason to know more about the cause of the problem:
public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { addClassToFirebase(); Intent intent = new Intent(signup.this, MainActivity.class); intent.putExtra("etsufn", ETname.getText().toString()); startActivity(intent); } else { // If sign in fails, display a message to the user. Toast.makeText(signup.this, "Authintication failed", Toast.LENGTH_SHORT).show(); Log.e("AUTH", "Authentication failed", task.getException()); // 👈 }
Also see the reference documentation for the Task
class.