1

Je souhaite modifier "user_mobile" et "user_blood".comment modifier la valeur "user_mobile"

[1]: https://i.stack.imgur.com/6Pljf.png

J'ai essayé ce code.

mAuth = FirebaseAuth.getInstance(); 
     String online_user_id = mAuth.getCurrentUser().getUid(); 
     getUserDataReference = FirebaseDatabase.getInstance().getReference().child("Users").child(online_user_id); 

getUserDataReference.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       //dataSnapshot.get 

       String name = dataSnapshot.child("user_name").getValue().toString(); 
       String status = dataSnapshot.child("user_status").getValue().toString(); 
       String image = dataSnapshot.child("user_image").getValue().toString(); 
       mobile = dataSnapshot.child("user_mobile").getValue().toString(); 
       String thumb_image = dataSnapshot.child("user_thumb_image").getValue().toString(); 

       settingDisplayName.setText(name); 
       settingDisplayStatus.setText(status); 

       if (!image.equals("default_profile")) 
       { 
        Picasso.with(SettingActivity.this).load(image).placeholder(R.drawable.default_profile).into(settingsDisplayImage); 
       } 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

Voici l'erreur.

FATAL EXCEPTION: main 
                     Process: com.logictex.bloodbank, PID: 2486 
                     java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
                      at com.logictex.bloodbank.SettingActivity$1.onDataChange(SettingActivity.java:77) 
                      at com.google.android.gms.internal.zzbmz.zza(Unknown Source) 
                      at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source) 
                      at com.google.android.gms.internal.zzboc$1.run(Unknown Source) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5254) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
+0

L'enfant de 'Users' dans ce schéma est' 'AB +, pas' online_user_id'. D'où le NPE. Cette ligne: 'getUserDataReference = FirebaseDatabase.getInstance(). GetReference(). Child (" Utilisateurs "). Child (user_user_id);' –

Répondre

0
DatabaseReference xyz= 
FirebaseDatabase.getInstance().getReference().child("Users").child(online_user_id).child("user_mobile"); 
xyz.setValue("set_desired vaule"); 

mêmes pour ne use_blood

+0

et comment puis-je obtenir ces valeurs. – Haider

0

peut être votre chemin FirebaseDatabase.getInstance().getReference().child("Users").child(online_user_id); n'existe pas.

public void onDataChange(DataSnapshot dataSnapshot) { 
    // dataSnapshot is null or it's children are returning null 
    // 
    if(dataSnapshot !=null){ 
     // do your code here 
    } 
} 
+0

et comment puis-je obtenir ces valeurs. – Haider

0

Pour résoudre ce problème, vous devez utiliser le code suivant:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 

DatabaseReference user_mobileRef = rootRef.child("Users").child(user_blood).child(online_user_id).child("user_mobile"); 
user_mobileRef.setValue("YourNewValue"); 

DatabaseReference user_bloodRef = rootRef.child("Users").child(user_blood).child(online_user_id).child("user_blood"); 
user_bloodRef.setValue("YourNewValue"); 
+0

AB + n'est pas hardcore. Cela a changé pour les autres utilisateurs. – Haider

+0

Je comprends. S'il vous plaît voir ma réponse mise à jour. J'ai changé cet enfant avec ceci: '.child (user_blood)'. Est-ce que ça marche? –

+0

et comment puis-je obtenir ces valeurs. – Haider