Создание документов на firestore с устройства - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время я пытаюсь создать документы для firestore с моего устройства Android. У меня возникли некоторые проблемы, так как два моих поля в firestore имеют тип TimeStamp. В настоящее время я не знаю, как добавить метку времени из Android в FireStore. Только строки или целые. Вот мой код с startTime и endTime, установленным на тип String. Я хочу изменить их, чтобы я мог добавить временные метки к этим полям в своих документах пожарного депо.

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();
    }
}

1 Ответ

0 голосов
/ 31 августа 2018

Похоже, вы зависите от класса Session (который здесь не показан), чтобы помочь сериализовать все ваши значения в Firestore. Если вы хотите, чтобы некоторые поля документа были объектами Timestamp, вам придется изменить Session так, чтобы она содержала объекты Java Date или Timestamp вместо строк. Свойства этих типов станут полем Timestamp в письменных документах. Это означает, что вам придется выяснить, как анализировать значения ваших строк для создания даты или метки времени. Если вы не уверены, как это сделать, вам следует задать другой вопрос о разборе строк дат (и указать, что именно вы пытаетесь преобразовать).

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