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:
Sauriez vous de quoi ça peut venir ? :-/
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)
Cordialement.
Voici mon code:
TestActivity:
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
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) { } }); } }
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; } }
Partager