首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从firebase v9检索数据以在前端显示?

如何从firebase v9检索数据以在前端显示?
EN

Stack Overflow用户
提问于 2021-10-27 23:43:37
回答 1查看 678关注 0票数 1

嗨,我有一份联络表格,我连接到了消防基地。现在,我希望能够使用这些数据并在浏览器中显示。我尝试了这么多方法,但都没有用。所以现在我在寻求你的帮助。

该集合称为messages

下面是我如何将联系人表单连接到firebase的代码:

代码语言:javascript
复制
import {addDoc, collection} from '@firebase/firestore'
import {db} from '../firebase'

    const [fullName, setFullName] = useState("")
    const [email, setEmail] = useState("")
    const [phone, setPhone] = useState("")
    const [company, setCompany] = useState("")
    const [service, setService] = useState("")
    const [msg, setMsg] = useState("")

        const docRef = await addDoc(collection(db, 'messages'), {
            Email: email,
            Nom: fullName,
            Message: msg,
            Service: service,
            Téléphone: phone,
            Société: company
        })

下面是我从firebase检索数据的尝试:

代码语言:javascript
复制
import { db } from "../firebase"
import { useState, useEffect } from "react"
import {
    onSnapshot,
    collection,
} from "@firebase/firestore"

const messages = () => {
    const [messages, setMessages] = useState([])

    useEffect(() =>
        onSnapshot(collection(db, "messages"),
            (snapshot) => {
        setMessages(snapshot.docs)
            }
        ),
            [db]
      )


    return (
        <div>
            {messages.map((message) => {
                <div>
                    <h1>{message.Email}</h1>
                </div>
            })}
        </div>
    )
}

export default messages
EN

回答 1

Stack Overflow用户

发布于 2021-10-27 23:50:51

我认为大多数情况下,您没有将data()onSnapshot处理程序中的DocumentSnapshot中展开。如果这确实是唯一的问题(很难通过一些更多的细节来确定,例如查看文档的样子),那么它将被修正为:

代码语言:javascript
复制
(snapshot) => {
  setMessages(
    snapshot.docs.map(doc => { 
      return { id: doc.id, ...doc.data() } 
    }) 
  )
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69746681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档