Механизм сортировки идентификаторов в базе данных Firebase Realtime - PullRequest
0 голосов
/ 02 декабря 2018

В ходе моего проекта событий я реализовал два способа создания идентификатора для каждого события в базе данных реального времени Firebase.Первые несколько недель я использовал случайный идентификатор UUID, сгенерированный на клиенте, но проблема заключалась в том, что узлы, добавленные с помощью этих идентификаторов, не были отсортированы должным образом (из-за случайности UUID и некоторого механизма сортировки базы данных реального времени Firebase).Поэтому я перешел на ключи .push (), которые все еще генерируются клиентом с помощью Firebase SDK.Поскольку они основаны на отметке времени, я могу сохранить хронологический порядок.К сожалению, эти идентификаторы .push не очень хорошо сочетаются с моими устаревшими идентификаторами UUID - они переплетаются с ними, и мне нужно поведение «добавить».Я попытался добавить какой-то префикс к идентификаторам .push () (например, «9999» или «ZZZZ»), чтобы Firebase всегда перемещал их вниз, но плохие результаты этого эксперимента показаны на скриншоте ниже.Мои вопросы:

  1. Каков механизм сортировки идентификаторов баз данных реального времени Firebase внутри узлов?Это не похоже на лексикографию, как предлагают другие.

  2. Как я могу перейти на идентификаторы .push (), когда идентификаторы UUID уже есть в базе данных и принудительное поведение "добавления" идентификаторов новостей?Любая идея для правильного префикса?

The structure of my Firebase node keys

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