I tried to register in the application I made, everything works fine and directs me to LoginActivity, but the data is not uploaded to the database and when I enter the name and password, the login doesn’t work.
file RgistrasiActifity.java
package com.example.wisata;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class RegisterActivity extends AppCompatActivity {
private EditText editTextName;
private EditText editTextEmail;
private EditText editTextPassword;
private ImageView imageViewRegister;
private DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
// Initialize Firebase Database
databaseReference = FirebaseDatabase.getInstance().getReference("users");
// Initialize views
editTextName = findViewById(R.id.editTextName);
editTextEmail = findViewById(R.id.editTextEmail);
editTextPassword = findViewById(R.id.editTextPassword);
imageViewRegister = findViewById(R.id.imageViewRegister);
imageViewRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerUser();
}
});
}
private void registerUser() {
// Get user input
String name = editTextName.getText().toString().trim();
String email = editTextEmail.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
// Validate input
if (name.isEmpty() || email.isEmpty() || password.isEmpty()) {
Toast.makeText(RegisterActivity.this, "Please fill in all fields", Toast.LENGTH_SHORT).show();
return;
}
// Save user data to Firebase Database
String userId = email.replace(".", "_"); // Menggunakan email sebagai kunci unik
databaseReference.child(userId).child("name").setValue(name);
databaseReference.child(userId).child("email").setValue(email);
databaseReference.child(userId).child("password").setValue(password);
// Show success message and navigate to login activity
Toast.makeText(RegisterActivity.this, "Registration Successful", Toast.LENGTH_SHORT).show();
startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
finish();
}
}
file activity_register.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:background="#F8EEEC"
tools:context=".RegisterActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView9"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_margin="16dp"
android:scaleType="fitXY"
app:srcCompat="@drawable/accss" />
<TextView
android:id="@+id/textView11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:text="Buat Akun"
android:textAlignment="center"
android:textColor="@color/biruT"
android:textSize="40sp"
android:textStyle="bold" />
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:background="@drawable/edittext_background"
android:hint="Nama"
android:inputType="text"
android:padding="8dp"
android:textColorHint="#756C6C" />
<EditText
android:id="@+id/editTextEmail"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:background="@drawable/edittext_background"
android:hint="Email"
android:inputType="textEmailAddress"
android:padding="8dp"
android:textColorHint="#756C6C" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:background="@drawable/edittext_background"
android:hint="Kata Sandi"
android:inputType="textPassword"
android:padding="8dp"
android:textColorHint="#756C6C" />
<ImageView
android:id="@+id/imageViewRegister"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:clickable="true"
android:focusable="true"
android:src="@drawable/daftar" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
file LoginActifity.java
package com.example.wisata;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class LoginActivity extends AppCompatActivity {
private static final String TAG = "LoginActivity";
private EditText editTextName;
private EditText editTextPassword;
private ImageView imageViewLogin;
private TextView textViewRegister;
private DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// Initialize views
editTextName = findViewById(R.id.editTextName);
editTextPassword = findViewById(R.id.editTextPassword);
imageViewLogin = findViewById(R.id.imageView10);
textViewRegister = findViewById(R.id.textView12);
// Initialize Firebase Database
databaseReference = FirebaseDatabase.getInstance().getReference("users");
// Set up login button click listener
imageViewLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = editTextName.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
if (validateInputs(email, password)) {
loginUser(email, password);
} else {
Toast.makeText(LoginActivity.this, "Please fill in all fields", Toast.LENGTH_SHORT).show();
}
}
});
// Set up register text click listener
textViewRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Register button clicked");
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
}
// Method to validate name and password
private boolean validateInputs(String email, String password) {
return !email.isEmpty() && !password.isEmpty();
}
// Method to login user
private void loginUser(String email, String password) {
String userId = email.replace(".", "_"); // Menggunakan email sebagai kunci unik
databaseReference.child(userId).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
String dbPassword = dataSnapshot.child("password").getValue(String.class);
if (dbPassword != null && dbPassword.equals(password)) {
// Login successful
Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish();
} else {
// Password incorrect
Toast.makeText(LoginActivity.this, "Incorrect Password", Toast.LENGTH_SHORT).show();
}
} else {
// User does not exist
Toast.makeText(LoginActivity.this, "User does not exist", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
// Handle possible errors
Log.e(TAG, "Database error: " + databaseError.getMessage());
Toast.makeText(LoginActivity.this, "Database error: " + databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
file activity_login.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".LoginActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F8EEEC">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView9"
android:layout_width="381dp"
android:layout_height="371dp"
android:scaleType="fitXY"
android:src="@drawable/accss"
app:srcCompat="@drawable/accss" />
<TextView
android:id="@+id/textView11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:text="Selamat Datang"
android:textAlignment="center"
android:textColor="@color/biruT"
android:textSize="40sp"
android:textStyle="bold" />
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:background="@drawable/edittext_background"
android:ems="10"
android:hint="Nama"
android:inputType="text"
android:padding="8dp"
android:textColorHint="#756C6C" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:background="@drawable/edittext_background"
android:ems="10"
android:hint="Password"
android:inputType="text|textPassword"
android:padding="8dp"
android:textColorHint="#756C6C" />
<ImageView
android:id="@+id/imageView10"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:src="@drawable/masuk"
app:srcCompat="@drawable/masuk" />
<TextView
android:id="@+id/textView12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Belum punya akun? Daftar"
android:textAlignment="center"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
New contributor
Salsabila Putri is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.