2016-02-01 6 views
1

Я использую push для добавления данных в список в определенном месте, мне нужно будет проанализировать список, который у меня есть относительно времени, в которое был нажат каждый элемент.Должен ли я хранить метку времени явно?

Должен ли я хранить временную метку во вставленном объекте, чтобы иметь возможность выполнить запрос по времени? например: получить все элементы между временем х и временем у

Я хочу, чтобы убедиться, что я делаю это правильно, так как Firebase уже использует метку время, чтобы гарантировать уникальный ключ для каждого толкаемого элемента

{ 
data:"Data to be stored", 
timestamp: /* time at which the data was pushed, is this important to do time-based query? */ 
} 

ответ

2

Если вы хотите запрос на метку времени, вы действительно должны хранить метку времени. Хотя технически это возможно extract the timestamp from Firebase's push ids, вы не должны полагаться на это.

Обратите внимание, что у вас будет другой выбор, чтобы сделать какое значение хранить. Вы хотите сохранить, когда пользователь отправляет данные (в JavaScript Date.now()) или, когда сервер хранит данные (используя Firebase.ServerValue.TIMESTAMP). Между этими значениями всегда будет какая-то разница. Но когда пользователь теряет сетевое соединение, разница может стать огромной. Это зависит от вас, чтобы определить, какая логика вам нужна для вашего случая использования.

+0

Независимо от используемой временной метки, обязательно преобразуйте ее в «UTC» и, когда ее необходимо отобразить, настройте на локаль и зону клиента, показывая метку времени. Firebase.ServerValue.TIMESTAMP должен быть UTC ... так что это хороший выбор. – ErstwhileIII

Смежные вопросы