【发布时间】:2020-02-12 01:01:47
【问题描述】:
我正在尝试基于以下存储库构建 Vue.js/Firebase 聊天应用程序:https://github.com/jsfanatik/vuestacks-chat-vue-firebase。我已经设置了 Chat 组件以启用将输入的消息推送到 Firestore,然后通过 getMessage() 方法将消息返回到模板。 getMessage() 方法将所有消息内容返回到屏幕,包括登录用户的名称、消息内容和用 moment.js 重新格式化的时间戳。 repo 的问题在于,一旦添加了新消息,所有其他消息的时间戳将重新呈现以反映最新消息的时间戳。我以为问题出在getMessage() 方法上:
async getMessage () {
let snapshot = await db.collection('messages').orderBy('timestamp').get()
const messages = []
snapshot.forEach(doc => {
let appData = doc.data()
appData.id = doc.id
appData.timestamp = moment(doc.timestamp).format('lll')
messages.push(appData)
})
this.messages = messages
},
...但我不确定如何重新配置此方法以解决该问题。知道如何让每条消息保持它自己的时间戳,而不是当前消息的时间戳吗?谢谢!
【问题讨论】:
标签: javascript firebase vue.js google-cloud-firestore momentjs