Can anyone check if there are errors in it because I always get an error
com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property.
this is my code signupTeacherActivity:
public class signupTeacher extends AppCompatActivity {
EditText userfirstname,userlastname, useremail,userpassword,userconfirmpassword, CV,city;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
Spinner spinner;
String defaultuserprofileimg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup_teacher);
getSupportActionBar().setTitle("Sign Up");
findViewByIds();
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.subject_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
public void signUpUser(View view) {
if(useremail.getText().toString().length()==0 || userpassword.getText().toString().length()==0||userfirstname.getText().length()==0 ||userconfirmpassword.getText().length()==0 ||userlastname.getText().length()==0){
Toast.makeText(signupTeacher.this, "Please enter all the fields to proceed further.",
Toast.LENGTH_SHORT).show();
}else {
if(spinner.getSelectedItem().toString().equals("Select a Subject")){
Toast.makeText(signupTeacher.this, "Please select a valid Subject.", Toast.LENGTH_LONG).show();
}
else {
mAuth = FirebaseAuth.getInstance();
mAuth.createUserWithEmailAndPassword(useremail.getText().toString(), userpassword.getText().toString())
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d("demo", "createUserWithEmail:onComplete:" + task.isSuccessful());
if (!task.isSuccessful()) {
Toast.makeText(signupTeacher.this, task.getException().toString(),
Toast.LENGTH_SHORT).show();
} else {
mDatabase = FirebaseDatabase.getInstance().getReference();
Teacher user = new Teacher(userfirstname.getText().toString(), userlastname.getText().toString(), useremail.getText().toString(), userpassword.getText().toString() , CV.getText().toString(), spinner.getSelectedItem().toString(), city.getText().toString(),task.getResult().getUser().getUid().toString(), defaultuserprofileimg);
mDatabase.child("Teachers").child(task.getResult().getUser().getUid().toString()).setValue(user);
Intent i = new Intent(signupTeacher.this, MainActivity.class);
startActivity(i);
Toast.makeText(signupTeacher.this, "Succesfully registered. Please login with the created credentials",
Toast.LENGTH_LONG).show();
mAuth = FirebaseAuth.getInstance();
mAuth.signOut();
finish();
}
}
});
}
}
}
public void goToLogin(View view) {
Intent i=new Intent(signupTeacher.this,MainActivity.class);
startActivity(i);
finish();
}
private void findViewByIds() {
userfirstname= (EditText)findViewById(R.id.firstname);
userlastname= (EditText) findViewById(R.id.lastname);
userpassword= (EditText) findViewById(R.id.password);
userconfirmpassword= (EditText)findViewById(R.id.confirmpassword);
useremail= (EditText) findViewById(R.id.email);
spinner = (Spinner) findViewById(R.id.spSubject);
CV = (EditText) findViewById(R.id.cv);
city = (EditText) findViewById(R.id.City);
}}
My class Teacher:
public class Teacher implements Serializable {
String firstlame,lastname,useremail,userpassword, CV, spinner, city, userkey,userimageuri;
public String getFirstlame() {
return firstlame;
}
public void setFirstlame(String firstlame) {
this.firstlame = firstlame;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getUseremail() {
return useremail;
}
public void setUseremail(String useremail) {
this.useremail = useremail;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String getCv() {
return CV;
}
public void setCv(String CV) {
this.CV = CV;
}
public String getSpinner() {
return spinner;
}
public void setSpinner(String spinner) {
this.spinner = spinner;
}
public String getCity() {return city; }
public void setCity(String city) {
this.city = city;
}
public String getUserkey() {
return userkey;
}
public void setUserkey(String userkey) {
this.userkey = userkey;
}
public String getUserimageuri() {
return userimageuri;
}
public void setUserimageuri(String userimageuri) {
this.userimageuri = userimageuri;
}
public Teacher(String firstlame, String lastname, String useremail, String userpassword, String CV, String spSubject , String City, String userkey, String userimageuri ) {
this.firstlame = firstlame;
this.lastname = lastname;
this.useremail = useremail;
this.userpassword = userpassword;
this.CV = CV;
this.spinner = spSubject;
this.city = City;
this.userkey=userkey;
this.userimageuri=userimageuri;
}
public Teacher(){
}}
logcat:
04-09 21:41:30.570 12739-12739/com..example.*.*hers E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.faay.hireteachers, PID: 12739
com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: cv
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.<init>(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzi(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
at com.google.firebase.database.DatabaseReference.zza(Unknown Source)
at com.google.firebase.database.DatabaseReference.setValue(Unknown Source)
at com.example.faay.hireteachers.signupTeacher$1.onComplete(signupTeacher.java:63)
at com.google.android.gms.tasks.zzc$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
Thanks for any sort of help!
Simply make sure that all the variables in your model class are declared as private
ie
private String name;
instead of
String name;
Try to fix the capitalization on your fields and methods. firstName
, getFirstName
... etc
Your error is on the CV
field, where the method should be setCV
to match the case of the field, though, you should name it cv
following Java naming contentions. And the method is then get
or setCv
public String getCv() {
return cv;
}
public void setCv(String cv) {
this.cv = cv;
}
I would also suggest not storing passwords as part of your objects. Especially if they are plain text. You send passwords to the database to check for validity or to update; it's seldom a good idea to read them out and persist them elsewhere
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With