无法从集合中返回随机的Firestore文档

时间:2019-09-08 19:48:57

标签: vue.js google-cloud-firestore nuxt.js vuefire

我正在使用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

感谢任何帮助或指导!

0 个答案:

没有答案