任何人都可以检查是否有错误,因为我总是收到错误
com.google.firebase.database.DatabaseException:找到两个对属性具有冲突区分大小写的getter或字段.
这是我的代码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(); ArrayAdapteradapter = 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 () { @Override public void onComplete(@NonNull Task 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); }}
我的班老师:
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.(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)
感谢您提供的任何帮助!
尝试修复字段和方法的大小写.firstName
,getFirstName
等等
您的错误在该CV
字段上,其中该方法应该setCV
与字段的大小写匹配,但是,您应该cv
在Java命名争用之后命名它.然后方法是get
或setCv
public String getCv() { return cv; } public void setCv(String cv) { this.cv = cv; }
我还建议不要将密码存储为对象的一部分.特别是如果它们是纯文本.您将密码发送到数据库以检查有效性或更新; 阅读它们并将它们留在别处很少是一个好主意