的Android - 火力地堡 - 保存新的数据,而不会覆盖旧的数据
问题描述:
,这一问题被创建为我刚才的问题中包含的,而不是缩小它下降到1的Android - 火力地堡 - 保存新的数据,而不会覆盖旧的数据
目的
用户将能够以2的问题存储新的数据,而不会覆盖其之前提交的资料
说明
当前,当用户输入新报告时,事件报告节点内的用户事件报告数据将被覆盖。
用户发送的旧事件报告中的数据应与新数据一起保存。
通过这种方式,当局将能够查看以前的报告以及新的报告数据。
问题
每当一个当前登录的用户节省了“报告”中,新报告的数据将覆盖老报告数据
代码保存数据
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();
}
}
});
}
答
jReportByUserDatabase.push().setValue(incidentReportUser)
这样写(push()
增加了值而不是覆盖)。
答
请注意,您的所有报告将依据()由.push创造了一个独特的密钥
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
谢谢你的回答彼得! = D我已经投了票,但我只能接受一个答案,所以我去了第一个答案。抱歉 – Student
谢谢您的回答少年存储向下一个级别! = D – Student