I was creating a basic application that takes input and stores it in a firebase database with auto incrementing but it crashes everytime giving a nullpointer exception.
I think there is some problem in my dataholder java file but I can't fix it.
I've tried changing arguments in dataholder file.i have checked my android manifest file for firebase services.
Here's my dataholder java file
public class dataholder {
String username,password1;
public dataholder(String username, String password1) {
this.username = username;
this.password1 = password1;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword1() {
return password1;
}
public void setPassword1(String password1) {
this.password1 = password1;
}
}
and MainActivity
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
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 MainActivity extends AppCompatActivity {
EditText name;
EditText password;
Button login;
DatabaseReference reff;
dataholder obj;
long maxid = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.etusername);
password = (EditText) findViewById(R.id.etpassword);
login = (Button) findViewById(R.id.Login);
reff = FirebaseDatabase.getInstance().getReference().child("dataholder");
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists())
maxid = (dataSnapshot.getChildrenCount());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
obj.setUsername(name.getText().toString().trim());
obj.setPassword1(password.getText().toString().trim());
reff.child(String.valueOf(maxid + 1)).setValue("obj");
Toast.makeText(getApplicationContext(), "Data inserted ", Toast.LENGTH_SHORT).show();
}
});
}
}