2014-09-18 2 views
0

Я хочу установить данные с приоритетом метки времени в прошлом или будущем, но не на текущую дату. А затем сможете делать запросы с помощью endAt и StartAt для определенных дат (365 дней)Метод push для будущих прошлых событий

Метод push позволяет устанавливать уникальные идентификаторы для данных и управлять заказом. Есть ли способ генерировать «уникальный PushId», такой как метод push() для отметки времени в прошлом или в будущем?

+0

Вы смотрели на документы для [упорядоченных данных] (https://www.firebase.com/docs/web/guide/retrieving-data.html#section-ordered- данные) и приоритеты? Что вы пробовали? Что не сработало? – Kato

+0

Я знаю, что я могу установить собственные временные метки (прошлое/будущее) для каждого из данных, а затем установить приоритеты с каждой отметкой времени ([например, это] (https://examples-sql-queries.firebaseio.com/messages)). Но мне было интересно, могу ли я установить ключи для упорядочивания данных, а также сделать уникальный идентификатор, подобный методу push(). Если правильный способ - установить только временные метки, есть ли способ получить временную метку из уникального идентификатора, установленного методом push()? Извините, возможно, я преувеличиваю, чтобы повторно использовать сохраненные данные или не писать повторяющиеся данные. Но все же у меня нет опыта в денормализации данных масштаба. – Miguel

ответ

1

Вы можете попытаться создать уникальные идентификаторы, похожие на то, что делает push, но это похоже на большую работу для небольшого выигрыша, когда в Firebase встроены инструменты для упорядочивания данных. Самый простой ответ - установить приоритет для каждой записи, используя временную метку сервера.

ref.push({ ...data..., ".priority": Firebase.ServerValue.TIMESTAMP }); 

Чтобы установить его в будущем или в прошлом, укажите метку времени вручную.

ref.push({ ...data..., ".priority": timeInTheFuture }); 

.info/serverTimeOffset также может быть полезен для обработки латентности.

Чтобы создать толчок иду, вы могли бы сделать что-то похожее на следующее:

  1. Получить текущую метку время и раздувание до фиксированной длины (то есть 16 символы)
  2. Append случайной последовательности цифр, такие как случайное число или хэш, а также дополняется до фиксированной длины
  3. Вашей запись будет выглядеть примерно так: 000128198239:KHFDBWYBEFIWFE
  4. Теперь у вас есть лексический Сортируемый идентификатор на основе метки времени, которая является уникальной

Вот полезный discussion on sorting numbers lexicographically

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