Я пытаюсь ввести метку времени из моего приложения для Android в Firestore - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь ввести метку времени из моего приложения для Android в Cloud Firestore. В настоящее время я использую этот код:

Код в настоящее время не добавляет правильное поле метки времени в коллекции Firestore для сеансов. Он добавляет два новых поля в коллекцию, а это не то, что я ищу. Любые предложения будут великолепны.

Код SessionAdapter:

  public void filterList(ArrayList<Session> filteredList) {
    sessionList = filteredList;
    notifyDataSetChanged();
}

class SessionHolder extends RecyclerView.ViewHolder{
    TextView textViewModule;
    TextView textViewTitle;
    TextView textViewDate;
    TextView textViewStart;
    TextView textViewEnd;



    public SessionHolder(View itemView) {
        super(itemView);
        textViewModule = itemView.findViewById(R.id.text_view_student_name);
        textViewTitle = itemView.findViewById(R.id.text_view_course);
        textViewDate = itemView.findViewById(R.id.text_view_student_ID);
        textViewStart = itemView.findViewById(R.id.text_view_user_UID);
        textViewEnd = itemView.findViewById(R.id.text_view_end);

Вот мой класс сессионной модели:

    public class Session {


private String module, Title;
private String room;
private String date;
private String startTime1;
private String endTime1;
private String documentID;


private java.util.Date start;
private java.util.Date end;

private Date startTime;
private Date endTime;
 public Session(){}

public Session(String title, String date, String documentID, String    endTime1, String module, String room, String startTime1 ) {
    this.documentID = documentID;
    this.module = module;
    this.Title = title;
    this.date = date;
    this.startTime1 = startTime1;
    this.endTime1 = endTime1;
    this.room = room;
}

public Session(String title, String date, String endTime1, String module, String room, String startTime1 ) {
    this.module = module;
    this.Title = title;
    this.date = date;
    this.startTime1 = startTime1;
    this.endTime1 = endTime1;
    this.room = room;
}

public String getTitle(){
    return Title;
}

public String getModule(){
    return module;
}

public String getRoom(){
    return room;
}

public String getDate(){
    return date;
}

public Date getStartTime(){
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.getDefault());
    TimeZone timezone = TimeZone.getTimeZone("Europe/London");
    formatter.setTimeZone(timezone);
    return startTime;
}

public Date getEndTime(){
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.getDefault());
    TimeZone timezone = TimeZone.getTimeZone("Europe/London");
    formatter.setTimeZone(timezone);
    return endTime;
}

@Exclude
public String getDocumentID(){
 return documentID;
}

1 Ответ

0 голосов
/ 13 сентября 2018

В вашем классе есть два поля:

private Date startTime;
private Date endTime;

Но вы никогда не назначаете их значения нигде в классе. Они всегда нулевые. У вас есть методы, которые возвращают их значения, например:

public Date getStartTime(){
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.getDefault());
    TimeZone timezone = TimeZone.getTimeZone("Europe/London");
    formatter.setTimeZone(timezone);
    return startTime;
}

Но метод просто возвращает ноль, потому что startTime никогда не назначается. Похоже, вы пытаетесь отформатировать дату здесь, но на самом деле ничего не делаете.

Если вы хотите записать метку времени в Firestore, вам нужно будет найти фактический объект Date, который at представляет момент времени, который вы хотите записать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...