Я использую облачную функцию Firebase с Admin SDK, чтобы получить самый последний документ из моей коллекции Firestore. Заказ основан на поле timestamp
. Это значение явно указывается при записи документа.
Код получения :
const fetchedTransaction = (await transactionsColRef.orderBy('timestamp', 'desc')
.limit(1).get()).docs[0]
console.log(fetchedTransaction)
console.log('Transaction created at', fetchedTransaction.createTime.toDate())
Операторы console.log
выводят следующий результат. Посмотрите на _createTime
внизу.
Вывод :
QueryDocumentSnapshot {
_fieldsProto: {
coinsToday: { doubleValue: 0.017, valueType: 'doubleValue' },
timestamp: { timestampValue: [Object], valueType: 'timestampValue' }
},
_ref: DocumentReference {
_firestore: Firestore {
_settings: [Object],
_settingsFrozen: true,
_serializer: [Serializer],
_projectId: 'hidden',
registeredListenersCount: 0,
_lastSuccessfulRequest: 1596692513232,
_backoffSettings: [Object],
_preferTransactions: false,
_clientPool: [ClientPool]
},
_path: QualifiedResourcePath {
segments: [Array],
projectId: 'hidden',
databaseId: '(default)'
},
_converter: {
toFirestore: [Function: toFirestore],
fromFirestore: [Function: fromFirestore]
}
},
_serializer: Serializer {
createReference: [Function (anonymous)],
allowUndefined: false
},
_readTime: Timestamp { _seconds: 1596692513, _nanoseconds: 164886000 },
_createTime: Timestamp { _seconds: 1596692167, _nanoseconds: 68734000 },
_updateTime: Timestamp { _seconds: 1596692167, _nanoseconds: 68734000 }
}
Transaction created at 2020-08-06T05:36:07.069Z
Я ищу способ упорядочить документы по _createTime
вместо того, чтобы писать timestamp
значение каждый раз. Использование orderBy('_createTime')
или orderBy('createTime')
не помогло.