Database + on a null object reference
Bonjour....
Je possède une Database sur Firebase, et je souhaite y mettre les informations qu'il y a dedans, dans mon TestActivity..
Mon problème:
- Si j'utilise la solution 1 (voir le onDataChange dans le code ci dessous)) et que je vais sur mon onglet TestActivity, mon application ne plante pas, mais le texte de mon TextView est remplacé par du vide, donc rien du tout...
- Si j'utilise la solution 2 (voir le onDataChange dans le code ci dessous)) et que je vais sur mon onglet TestActivity, et bien mon application plante et met ce message d'erreur:
Code:
1 2
| java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.debarflorian.imcapp.UserProfile.getUserName()' on a null object reference
at com.debarflorian.imcapp.TestActivity$1.onDataChange(TestActivity.java:41) |
Sauriez vous de quoi ça peut venir ? :-/
Cordialement.
Voici mon code:
TestActivity:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
public class TestActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private FirebaseDatabase firebaseDatabase;
private TextView profileName;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
profileName = findViewById(R.id.tvProfileName);
firebaseAuth = FirebaseAuth.getInstance();
firebaseDatabase = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid());
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Solution 1
UserProfile userProfile = new UserProfile();
// Solution 2
UserProfile userProfile = dataSnapshot.getValue(UserProfile.class);
profileName.setText(userProfile.getUserName());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
} |
UserProfile.class
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public class UserProfile {
public String userName;
public UserProfile(){
}
public UserProfile(String userName) {
this.userName = userName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
} |