我正在尝试使Vue.js应用程序能够从Firestore数据库检索项目,并按时间戳顺序排列这些项目。通常,我会使用:
let ref = db.collection('users').orderBy('timestamp')
...如果时间戳只是一个文档项目。但是,我设置了此应用程序,因此timestamp
是名为events
的Firebase文档数组项内的对象。
如何设置以上语句以使用timestamp
数组doc项内的events
来按时间戳排列我的项?
更新功能
let newDetails = this.newDetails
let timestamp = moment(Date.now()).format('lll')
let ref = db.collection('users').where('user_id', '==', firebase.auth().currentUser.uid)
.get()
.then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
console.log(doc.id, ' => ', doc.data())
doc.ref.update({'events': firebase.firestore.FieldValue.arrayUnion({
'name': doc.data().name,
'details': newDetails,
'timestamp': moment(Date.now()).format('lll')
})
})
})
})
答案 0 :(得分:0)
不可能基于数组类型文档字段中的各个值对查询进行排序。您必须将此时间戳值提升为它自己的字段才能对其进行排序。