簡體   English   中英

發現兩個 getter 或字段的屬性區分大小寫沖突

[英]Found two getters or fields with conflicting case sensitivity for property

任何人都可以檢查它是否有錯誤,因為我總是收到錯誤

com.google.firebase.database.DatabaseException:發現兩個 getter 或字段的屬性區分大小寫沖突。

這是我的代碼注冊教師活動:

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);

}}

我的班主任:

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(){

}}

日志貓:

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)

感謝您的任何幫助!

嘗試修復您的字段和方法的大小寫。 firstName , getFirstName ... 等

您的錯誤出現在CV字段上,該方法應該設置為setCV以匹配該字段的大小寫,但是,您應該在 Java 命名爭用之后將其命名為cv 然后方法是getsetCv

public String getCv() {
    return cv;
}

public void setCv(String cv) {
    this.cv = cv;
 }

我還建議不要將密碼存儲為對象的一部分。 特別是如果它們是純文本。 您將密碼發送到數據庫以檢查有效性或更新; 將它們讀出來並保留在其他地方很少是一個好主意

只需確保模型類中的所有變量都聲明為私有

IE

private String name;

代替

String name;
  1. 兄弟,您在類SignupTeacher所有變量都是私有的。
  2. 只需確保您在此類中使用的變量應該與您在 firebase 中使用的一樣。 看看我的情況

    這是火基對象

這是我的安卓課

  1. 並按照您在 firebase 中使用的順序將變量放在您的班級中 謝謝

我剛剛遇到了同樣的問題,但我解決了它首先檢查您是否具有與 firebase jason 表變量相同的變量名。 在您的情況下, CV 在您的 java 類中作為 Cv 返回,因此首先更正它,而不是檢查該變量 CV 的 firebase jason 表名稱。

Firebase JSON 序列化名稱由注釋 PropertyName 控制(如果名稱以大寫字母開頭)。 你有兩個選擇

1)投訴投訴
2) 使用@PropertyName("Complain")

public class Order implements Serializable {

private String Complain;

public Order() {
 Complain = "";
}

@PropertyName("Complain")
public String getComplain() {
    return Complain;
}

@PropertyName("Complain")
public void setComplain(String complain) {
    Complain = complain;
}

}

參考https://stackoverflow.com/a/45809982/9315431

您可以使用@PropertyName注釋在不更改變量名稱的情況下映射名稱

科特林 例如:

在此處輸入圖片說明

data class Category(
    @PropertyName("Image")
    var img:String="",
    @PropertyName("Names")
    var name:String="")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM