【问题标题】:VUEJS + Firestore how to output Data?VUEJS + Firestore 如何输出数据?
【发布时间】:2019-01-04 15:38:43
【问题描述】:

我创建了一个帖子并将其存储在Cloud Firestore 中,现在我想将数据输出到我的vueJs 文件中,名为Dashboard.vue

但我不知道它是如何工作的。我自己尝试了一些想法,但没有得到好的结果。

那么我怎样才能输出这些数据呢?

文件:

Firebase => Cloud Firestore 

在 firebase 中创建帖子数据:

vueJspost.vue创建post方法

    createPost () {
       fb.postsCollection.add({
        postDetails: {
        createdOn: this.postDetails.createdOn,
        content: this.postDetails.content,
        userId: this.currentUser.uid,
        image: this.postDetails.image,
        comments: this.postDetails.comments,
        likes: this.postDetails.likes
      }
      }).then(ref => {
          this.post.content = ''
          this.$router.push('/dashboard')
      }).catch(err => {
          console.log(err)
      })
    }

【问题讨论】:

    标签: firebase vue.js google-cloud-firestore


    【解决方案1】:

    如下操作:

    在您的数据中创建一个posts 数组:

    ...
    data() {
        return {
            posts: []
        }
    },
    ....
    

    然后创建一个获取记录并将结果分配给posts数组的方法:

     methods:{
       getPosts: function() {
    
        fb.postsCollection.orderBy('createdOn', 'desc').onSnapshot(querySnapshot => {
            let postsArray = []
    
            querySnapshot.forEach(doc => {
                let post = doc.data()
                post.id = doc.id
                postsArray.push(post)
            })
    
            this.posts = postsArray;
        })
    
       }
     },
     .....
    

    调用beforeMount()生命周期钩子中的方法:

     beforeMount(){
        this.getPosts()
     },
    

    然后将帖子渲染到 DOM。例如:

    <div v-if="posts.length">
        <div v-for="post in posts">
            <h4>{{ post.createdOn }}</h4>
            <p>{{ post.content}}</p>
            <ul>
                <li>comments {{ post.comments }}</li>
            </ul>
        </div>
    </div>
    <div v-else>
        <p>There are currently no posts</p>
    </div>
    

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 1970-01-01
      • 2022-10-04
      • 2017-06-27
      • 2019-01-05
      • 2019-07-19
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多