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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
    }
}