随处搜索,但未找到任何解决方案或答案。我可以使用以下代码获取时间戳:
var timestamp = firebase.database.ServerValue.TIMESTAMP;
但我想存储负时间戳以进行排序。我怎么得到它?
当我尝试将其与 -1 相乘时,它会产生NaN错误,因为它是一个对象。怎么样?
答案 0 :(得分:3)
当数据集太大而无法反转客户端时,负时间戳非常有用。
Firebase服务器时间戳是在保存数据后转换为数字的对象。因此,您需要保存正面时间戳,然后在初始推送后将其转换为负时间戳。这是一个经过验证的工作示例。
let timestamp = firebase.database.ServerValue.TIMESTAMP
const promise = firebase.database().ref().child('posts').push({ timestamp })
const key = promise.key
promise.then(_ => {
const postRef = firebase.database().ref('/posts/' + key)
postRef.once('value').then(function(snapshot) {
timestamp = snapshot.val().timestamp * -1
postRef.update({ timestamp })
});
})