我正在使用Nuxt构建Web应用程序,并且很难尝试从Firestore的邮件集中获取一条随机邮件。
我尝试使用一种方法来返回随机消息,以及将messages
对象中数组的索引值随机化。
为了更好地说明,这是我当前的脚本标签在Messages.vue组件中的样子:
<script>
import {db} from '../plugins/firebase'
export default {
firestore() {
return {
messages: db.collection("messages")
}
},
data: function() {
return {
messages: ''
}
},
methods: {
randomMessage() {
var randomMessage = this.messages[Math.floor(Math.random()*this.messages.length)];
return randomMessage
}
}
}
</script>
randomMessage()
方法的确从集合中返回了一个随机消息对象,但这是整个对象,我只想要.text
的{{1}}属性。换句话说,message
可以从Firestore返回随机消息文档,但是当我使用{{messages[Math.floor(Math.random()*this.messages.length)]}}
时,会收到错误消息:
{{messages[Math.floor(Math.random()*this.messages.length)].text
我也曾尝试在此线程中遵循Dan McGrath的回答,但未成功:
Firestore: How to get random documents in a collection
我不确定如何在Nuxt项目中实施Wrap-around解决方案。当我尝试在脚本导出中使用该解决方案作为方法时,出现语法错误。
完整的仓库可以在这里找到:https://github.com/SIeep/motivation-app
感谢任何帮助或指导!