繁体   English   中英

渲染从 firebase 收集的实时数据时出现问题

[英]Problem in rendering real time data collected from firebase

我在 firebase 集合上存储了一些数据,通过以下代码我能够在控制台上获取该数据,但我无法在我的网站前端呈现它。 我是 firebase 的新手,有人可以帮我更正我的代码吗?

import React, { useState, useEffect} from 'react'
import "./Feed.css"
import MessageSender from './MessageSender'
import Post from './Post'
import StoryReel from "./StoryReel"
import db from "./firebase"
import { query, getDocs, onSnapshot, collection } from 'firebase/firestore';

function Feed() {
  const colRef = collection(db, 'posts')
  const posts =[]

onSnapshot(colRef, (snapshot) => {
      snapshot.docs.map((doc) =>{            
        posts.push({data:doc.data(), id: doc.id})
      })
      console.log(posts)
     } )    


  return (
    <div className="Feed">
        <StoryReel />
        <MessageSender />

      {posts.map((post) => {
          <Post
            key={post.id}
            profilePic={post.data.profilePic}
            message={post.data.message}
            timestamp={post.data.timestamp}
            username={post.data.username}
            image={post.data.image}
          />
        })}
       
    </div>
  )
}

export default Feed

由于您使用的是 React,因此您可以在帖子更改时使用useState重新渲染。

const [posts, setPosts] = useState([])

onSnapshot(colRef, (snapshot) => {
      const tempPosts = []
      snapshot.docs.map((doc) =>{            
        tempPosts.push({data:doc.data(), id: doc.id})
      })
      console.log(tempPosts)
      setPosts(tempPosts)
     } )  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM