2

Cette question a été créé ma question précédente contenait 2 question au lieu de le restreindre jusqu'à 1Android - Firebase - Enregistrer les nouvelles données sans Écrasement d'anciennes données

But

Les utilisateurs seront en mesure de stocker de nouvelles données sans écraser leurs données précédemment soumises

description de

Actuellement, les données du rapport d'incident de l'utilisateur dans le nœud Rapport d'incident seront remplacées lorsque l'utilisateur entre un nouveau rapport.

Les données de l'ancien rapport d'incident envoyé par l'utilisateur doivent être conservées avec les nouvelles données. De cette façon, les autorités pourront voir les rapports précédents ainsi que les nouvelles données de rapport.

Problème

Everytime un actuellement connecté à l'utilisateur enregistre un "rapport", les Nouvelle données du rapport remplacent les anciens données du rapport

Codes pour enregistrer les données

private void submitReport(final String userReportDate,final String userReportTime, 
           final String userReportLocation,final String userReportDescription) { 

     jReportCurrentUserID = FirebaseAuth.getInstance().getCurrentUser(); 
     final String reportUserID = jReportCurrentUserID.getUid(); 
     jReportByUserDatabase = FirebaseDatabase.getInstance().getReference().child("Incident Reports").child(reportUserID); 

     HashMap<String, String> incidentReportUser = new HashMap<>(); 
     incidentReportUser.put("date", userReportDate); 
     incidentReportUser.put("time", userReportTime); 
     incidentReportUser.put("location", userReportLocation); 
     incidentReportUser.put("description", userReportDescription); 

     jReportByUserDatabase.setValue(incidentReportUser).addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 
       if(task.isSuccessful()){ 
        jReportLoad.dismiss(); 
        Toast.makeText(getActivity(), "Report was Sent", Toast.LENGTH_SHORT).show(); 
        jReportDatePick.setText(""); 
        jReportTimeEnt.setText(""); 
        jReportLocationEnt.setText(""); 
        jReportDescriptionEnt.setText(""); 
       }else{ 
        jReportLoad.dismiss(); 
        Toast.makeText(getActivity(), "Report failed to be sent", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
    } 

Répondre

2

jReportByUserDatabase.push().setValue(incidentReportUser)Ecrivez-le de cette façon (push() ajoute des valeurs au lieu de redéfinir).

+0

Merci pour votre réponse Cadet !! = D – Student

0

Voir push documentation

Notez que vos tous vos rapports seront désormais stockés un niveau plus bas sous une clé unique créée par .Le bouton()

private void submitReport(final String userReportDate,final String userReportTime, 
           final String userReportLocation,final String userReportDescription) { 

     jReportCurrentUserID = FirebaseAuth.getInstance().getCurrentUser(); 

     final String reportUserID = jReportCurrentUserID.getUid(); 
     jReportByUserDatabase = FirebaseDatabase.getInstance().getReference().child("Incident Reports").child(reportUserID).push(); 
     DatabaseReference newReport = jReportByUserDatabase.push(); 

     HashMap<String, String> incidentReportUser = new HashMap<>(); 
     incidentReportUser.put("date", userReportDate); 
     incidentReportUser.put("time", userReportTime); 
     incidentReportUser.put("location", userReportLocation); 
     incidentReportUser.put("description", userReportDescription); 

     newReport.setValue(incidentReportUser).addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 
       if(task.isSuccessful()){ 
        jReportLoad.dismiss(); 
        Toast.makeText(getActivity(), "Report was Sent", Toast.LENGTH_SHORT).show(); 
        jReportDatePick.setText(""); 
        jReportTimeEnt.setText(""); 
        jReportLocationEnt.setText(""); 
        jReportDescriptionEnt.setText(""); 
       }else{ 
        jReportLoad.dismiss(); 
        Toast.makeText(getActivity(), "Report failed to be sent", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
    } 
+0

Merci pour votre réponse Peter !! = D J'ai upvoted mais je ne pouvais accepter qu'une seule réponse et donc je suis allé avec le premier. Pardon – Student