简体   繁体   English

在课程上找不到用于Social_Security_Number的设置器/字段

[英]No setter/field for Social_Security_Number found on class

I am getting this warning and then a subsequent NullpointerException. 我收到此警告,然后出现随后的NullpointerException。

After looking through articles some more, I tried making sure my Java Class names matched the ones in my Firebase DB, but I am still getting the error. 在浏览了更多文章之后,我尝试确保Java类名称与Firebase数据库中的Java类名称匹配,但是仍然出现错误。

FirebaseDB: FirebaseDB: 未经验证的员工

Warning/Error: 警告/错误:

01-03 13:03:01.963 23252-23252/? I/FirebaseMethods: checkIfUsernameExists: checking if imail@address.com already exists.
01-03 13:03:01.965 23252-23252/? I/FirebaseMethods: checkIfUsernameExists: datasnapshot: DataSnapshot { key = RC9zIioE6vc5vlhrIethmbqyFDS2, value = {Social_Security_Number=5555, Email_Address=imail@address.com} }
01-03 13:03:01.981 23252-23252/? W/ClassMapper: No setter/field for Social_Security_Number found on class com.netgalaxystudios.timeclock.Models.EmployeeUser
01-03 13:03:01.981 23252-23252/? W/ClassMapper: No setter/field for Email_Address found on class com.netgalaxystudios.timeclock.Models.EmployeeUser
01-03 13:03:01.981 23252-23252/? I/FirebaseMethods: checkIfUsernameExists: email: null
01-03 13:03:01.987 23252-23252/? E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
                                                          at com.netgalaxystudios.timeclock.Adapters.FirebaseMethods.checkIfUsernameExists(FirebaseMethods.java:46)
                                                          at com.netgalaxystudios.timeclock.Activities.RegisterEmployeeActivity$1$1.onDataChange(RegisterEmployeeActivity.java:122)

FirebaseMethods.java: FirebaseMethods.java:

public boolean checkIfUsernameExists(String emailAddress, DataSnapshot datasnapshot){
        Log.i(TAG, "checkIfUsernameExists: checking if " + emailAddress + " already exists.");

        EmployeeUser user = new EmployeeUser();

        for (DataSnapshot ds: datasnapshot.getChildren()){
            Log.i(TAG, "checkIfUsernameExists: datasnapshot: " + ds);

            user.setEmailAddress(ds.getValue(EmployeeUser.class).getEmailAddress());
            Log.i(TAG, "checkIfUsernameExists: email: " + user.getEmailAddress());

            if(user.getEmailAddress().equals(emailAddress)){
                Log.i(TAG, "checkIfUsernameExists: FOUND A MATCH: " + user.getEmailAddress());
                return true;
            }

EmployeeUser.java: EmployeeUser.java:

public class EmployeeUser {

    private String user_id;
    private String Email_Address;
    private String Social_Security_Number;

    public EmployeeUser(String user_id, String Email_Address, String Social_Security_Number) {
        this.user_id = user_id;
        this.Email_Address = Email_Address;
        this.Social_Security_Number = Social_Security_Number;
    }

    public EmployeeUser(String Email_Address) {
        this.Email_Address = Email_Address;
    }

    public EmployeeUser() {}

    public String getUser_id() {
        return user_id;
    }

    public void setUser_id(String user_id) {
        this.user_id = user_id;
    }

    public String getEmailAddress() {
        return Email_Address;
    }

    public void setEmailAddress(String emailAddress) {
        this.Email_Address = emailAddress;
    }

    public String getSocialSecurityNumber() {
        return Social_Security_Number;
    }

    public void setSocialSecurityNumber(String socialSecurityNumber) {
        this.Social_Security_Number = socialSecurityNumber;
    }

}

RegisterEmployeeActivity.java: RegisterEmployeeActivity.java:

 mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                //1st check: Make sure the username is not already in use
                                Log.i("DATA VALUE", dataSnapshot.child("RC9zIioE6vc5vlhrIethmbqyFDS2").getValue().toString());

                                if (firebaseMethods.checkIfUsernameExists(email, dataSnapshot)) {
                                    auth.createUserWithEmailAndPassword(emailET.getText().toString(), passwordET.getText().toString())
                                            .addOnCompleteListener(RegisterEmployeeActivity.this, new OnCompleteListener() {

According to Java Naming conventions , your model class should look like this: 根据Java Naming约定 ,您的模型类应如下所示:

public class EmployeeUser {
    private String userId;
    private String emailAddress;
    private String socialSecurityNumber;

    public EmployeeUser(String userId, String emailAddress, String socialSecurityNumber) {
        this.userId = userId;
        this.emailAddress = emailAddress;
        this.socialSecurityNumber = socialSecurityNumber;
    }

    public EmployeeUser(String emailAddress) {
        this.emailAddress = emailAddress;
    }

    public EmployeeUser() {}

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getEmailAddress() {
        return emailAddress;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }

    public String getSocialSecurityNumber() {
        return socialSecurityNumber;
    }

    public void setSocialSecurityNumber(String socialSecurityNumber) {
        this.socialSecurityNumber = socialSecurityNumber;
    }
}

You are getting No setter/field for Social_Security_Number found on class error because Firebase is looking for a field named socialSecurityNumber accordingly to your getSocialSecurityNumber() getter method. No setter/field for Social_Security_Number found on class错误时No setter/field for Social_Security_Number found on class因为Firebase会根据您的getSocialSecurityNumber() getter方法来查找名为socialSecurityNumber的字段。 Your field is Social_Security_Number instead of socialSecurityNumber and therefore that error. 您的字段是Social_Security_Number而不是socialSecurityNumber ,因此是该错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 重复的:在课堂上找不到二传手 - Duplicated : No setter/field for found on class 在 class 上找不到 cardimage 的设置器/字段 - No setter/field for cardimage found on class 重新发布:在类上找不到mblogBegginer的设置器/字段 - Repost : No setter/field for mblogBegginer found on class 在 class 问题上找不到类型的设置器/字段 - No setter/field for type found on class problem [CustomClassMapper]:在 Firebase Firestore 的 class 上找不到 ... 的设置器/字段 - [CustomClassMapper]: No setter/field for … found on class in Firebase Firestore 未找到二传手/字段 - No setter/field found firebase 实时数据库 W/ClassMapper:在课堂上找不到 setter/field - firebase realtime database W/ClassMapper: No setter/field for found on class Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段 - Firebase , classmaper : no setter/field found for 'UserTwo' on class 'myclass' 在类*中找不到属性*的二传手 - No setter found for property * in class * 在类'org.springframework.security.provisioning.JdbcUserDetailsManager'中找不到属性'dataSource'的设置器 - No setter found for property 'dataSource' in class 'org.springframework.security.provisioning.JdbcUserDetailsManager'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM