我尝试使用当前日期和时间填充firebase中的子元素 来自以下代码
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String millisInString = dateFormat.format(new Date());
btn_send_msg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Map<String,Object> map = new HashMap<String, Object>();
temp_key = root.push().getKey();
root.updateChildren(map);
DatabaseReference message_root = root.child(temp_key);
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("name",user_name);
map2.put("msg",input_msg.getText().toString()+millisInString);
message_root.updateChildren(map2);
}
});
但我的问题是,它可以返回并保存单次
例如,如果我点击那么它将保存
2018-04-16 10:17:54
如果我点击它会再次保存
2018-04-16 10:17:54
但如果我重新启动我的应用程序,现在如果我点击它将保存新的更新时间,
2018-04-16 10:18:54
同时再次,除非我再次重启我的应用程序。
请帮忙
答案 0 :(得分:2)
您需要在onClick()
btn_send_msg
方法中获取当前时间和日期
试试这个
btn_send_msg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String millisInString = dateFormat.format(new Date());
Map<String,Object> map = new HashMap<String, Object>();
temp_key = root.push().getKey();
root.updateChildren(map);
DatabaseReference message_root = root.child(temp_key);
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("name",user_name);
map2.put("msg",input_msg.getText().toString()+millisInString);
message_root.updateChildren(map2);
}
});