当前,我正在尝试从我的android设备创建firestore文档。我遇到了一些问题,因为我在Firestore上的两个字段属于TimeStamp类型。目前,我不知道如何从android向firestore添加时间戳。仅字符串或整数。这是我的代码,其中startTime和endTime设置为String。我希望更改这些设置,以便在我的Firestore文档中为这些字段添加时间戳。
public class NewSessionActivity extends AppCompatActivity {
private EditText editTextModule, editTextTitle, editTextDate, editTextStart, editTextEnd, editTextID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_session);
editTextModule = findViewById(R.id.edit_text_Module1);
editTextTitle = findViewById(R.id.edit_text_Title1);
editTextDate = findViewById(R.id.edit_text_Date1);
editTextStart = findViewById(R.id.edit_text_Start1);
editTextEnd = findViewById(R.id.edit_text_End1);
editTextID = findViewById(R.id.edit_text_docID);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.new_session_menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.save_session:
saveSession();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void saveSession(){
String module = editTextModule.getText().toString();
String title = editTextTitle.getText().toString();
String date = editTextDate.getText().toString();
String startTime = editTextStart.getText().toString();
String endTime = editTextEnd.getText().toString();
String docID = editTextID.getText().toString();
if (module.trim().isEmpty()||title.trim().isEmpty()||date.trim().isEmpty()){
Toast.makeText(this,"Please fill all fields",Toast.LENGTH_SHORT).show();
return;
}
CollectionReference sessionRef = FirebaseFirestore.getInstance()
.collection("Session");
sessionRef.add(new Session(module,title,date,startTime,endTime, docID));
Toast.makeText(this,"Session Added",Toast.LENGTH_SHORT).show();
finish();
}
}
答案 0 :(得分:0)
您似乎依赖于一个称为Session的类(此处未显示)来帮助将所有值序列化到Firestore。如果您希望文档的某些字段成为Timestamp对象,则必须修改Session以包含Java Date或Timestamp对象而不是字符串。这些类型的属性将成为书面文档中的“时间戳记”字段。这意味着您将必须弄清楚如何解析字符串的值以创建日期或时间戳。如果您对如何执行此操作感到困惑,则应该问另一个有关解析日期字符串的问题(并具体说明要转换的内容)。