파이어베이스 DB에 있는 데이터를 기반으로 로그인 처리를 하는 과정입니다.
getPass()를 통해서 값을 가져와서 확인하고 싶은데 뭐가 문제인지 잘 모르겠습니다... 조언 부탁드립니다.
public class MemberDB {
public String name;
public String age;
public String pass;
public String id;
public String type;
public MemberDB(){}
public MemberDB(String id, String pass, String name, String age, String type){
this.id = id;
this.pass = pass;
this.name = name;
this.age = age;
this.type = type;
}
public String getId() {return id;}
public void setId(String id) {this.id = id;}
public String getPass() {return pass;}
public void setPass(String pass) {this.pass = pass;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getAge() {return age;}
public void setAge(String age) {this.age = age;}
public String getType() {return type;}
public void setType(String type) { this.type = type;}
}
public void onClick(View view) {
databaseReference.equalTo(userid.getText().toString()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
MemberDB memberDB = snapshot.getValue(MemberDB.class);
if (memberDB.getPass().equals(password.getText().toString())) {
Toast.makeText(LoginActivity.this, "success", Toast.LENGTH_SHORT).show();
Log.d("pass", memberDB.getPass());
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
2022-12-04 16:00:10.464 19716-19716/com.example.petinfo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.petinfo, PID: 19716
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.petinfo.MemberDB.getPass()' on a null object reference
at com.example.petinfo.LoginActivity$1$1.onDataChange(LoginActivity.java:62)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7898)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)