Firestore createId () идентификаторы не в хронологическом порядке - PullRequest
0 голосов
/ 10 октября 2018

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

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Из документации Firestore о добавлении данных :

Важно : В отличие от «push-идентификаторов» в базе данных Firebase Realtime, автоматически создается Cloud FirestoreИдентификаторы не обеспечивают автоматического заказа.Если вы хотите иметь возможность упорядочить свои документы по дате создания, вам следует сохранить метку времени в качестве поля в документах.

Так что вам действительно нужно добавить поле метки времени в документы, если выхочу заказать в хронологическом порядке.Для этого вы можете использовать временные метки на стороне сервера, как показано в документации Firestore об обновлении данных :

docRef.update({
  timestamp: firebase.firestore.FieldValue.serverTimestamp()
});

При этом вы можете заказать хронологически как вконсоль и в ваших собственных запросах.

0 голосов
/ 10 октября 2018

Есть ли способ создать идентификаторы так же, как они генерируются в базе данных?

Нет, нет!В отличие от идентификаторов базы данных Fireabse в реальном времени, идентификаторы Cloud Firestore фактически являются случайными.Там нет времени компонент включен.Вот почему нет порядка.Столкновения идентификаторов в этом случае также невероятно маловероятны, и вы можете / должны предположить, что они будут совершенно уникальными.Это то, для чего они были разработаны.

Или мне нужно передать метку времени создания и отсортировать по ней?

Вы угадаете, вы должны заказать свои предметы согласнок свойству отметки времени.

Для Android здесь вы можете найти, как добавить дату, используя класс модели или FieldValue.serverTimestamp () .

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