Firebase 呈现集合中的每个文档

扬内曼宁

我有这个 Firebase 数据库,我在其中作为集合存储不同的大陆。每个大洲都有一份文件,作为审查。每个文档都包含一些我想在用户选择文档时显示的信息。

我的问题是,每当我从 Firebase 查询一些数据时,集合中保存的所有内容都会呈现。

我给你看一张图:https : //imgur.com/a/ZuOKNCj

第一张图是我的数据库,第二张图是我查询的时候。

现在,我不确定这是因为我的 Firebase 查询代码还是其他原因。我已经用了几天的大脑,但我无处可去。

这是我查询的方式:

const useCountries = (continent) => {
    const [countries, setCountries] = useState([]);

    useEffect(() => {
        console.log(continent)
        firebase
            .firestore()
            .collection(continent)
            .onSnapshot((snapshot) => {
                const newCountries = snapshot.docs.map((doc) => ({
                    id: doc.id,
                    ...doc.data()

                }))
                setCountries(newCountries)

            })

    }, [])
    return countries
}

我相当确定问题出在这段代码中。会是这样吗?我认为问题出在快照上,总是在聆听新内容并基本上呈现所有内容。

那么,我想展示什么?

好的,所以这是一个评论网站。我使用垂直导航栏来显示每个大陆,然后是一个显示评论名称的新导航栏。评论的名称也是文档的名称。

这段代码是包含名称的组件的一部分:

const CountryList = ({ continent, displayFields = [] }) => {
    const countries = useCountries(continent, revName);
 ...

    return (
        <div className="countries">
            {countries.map(country => (
                <div key={country.id}>
                    <div className="entry">

                        {displayFields.includes("dest1") && (
                            <div>Destination 1: {country.dest1}
                            </div>
                        )}
                        {displayFields.includes("continent") && (
                            <div>{country.continent}</div>
                        )}
                        {displayFields.includes("revName") && (
                            <div>{country.revName}</div>
                        )}

这是我想用来查询的 revName。

我希望我已经解释了自己,至少足够好。

编辑:https : //imgur.com/a/d9iJdO1这是使用大陆的垂直导航栏。我使用以下方法填充此导航栏:

 <Menu className="nav-icon">
    <CountryList
      continent={props.continent}
      displayFields={["countryName"]}
    />
  </Menu>

基本上,我调用 useCountries-hook 来创建要在此处显示的大陆数组。

谢谢!

拉克什·贾恩

您可以做的是添加条件以检查它是否被选中并基于该显示正确评论。

{countries.map(country => (
                <div key={country.id}>
                    <div className="entry">

                        {displayFields.includes("dest1") && country.dest1 === currentCity && (
                            <div>Destination 1: {country.dest1}
                            </div>
                        )}
                        {displayFields.includes("continent") && (
                            <div>{country.continent}</div>
                        )}
                        {displayFields.includes("revName") && country.dest1 === currentCity &&(
                            <div>{country.revName}</div>
                        )}

其中 currentCity 将是选定的一个

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从用户集合Firebase中获取每个文档

如何在 Firebase Firestore 的每个文档的子集合中获取文档?

Firebase查询,从单个集合中获取多个文档,每个文档中的doc.id等于单独列表中的id

如何订购Firebase集合,然后向每个文档中写入内容?

减少阅读Firebase Firestore集合中的文档

Firebase获取集合中的文档长度

什么是sql中的firebase集合和文档?

如何将 Firebase 集合的每个文档制作为 ListTile?

每个用户的Firebase文档?

如何在 JS 中的 firebase 的集合中添加文档?

如何在Firebase中的集合中添加多个文档?

仅获取具有与单独集合中的文档匹配的ID的FireBase集合中的文档

如何在 Firebase 中计算文档中的集合

获取 Firebase 集合中的所有文档 - React

向 Firebase 中的现有集合添加更多文档

Firebase功能:更新集合中的所有文档

Flutter-无法检索Firebase集合中的文档列表

如何正确排序firebase集合中的文档从头到尾

使用 Vuex 操作 Firebase 集合中的文档 [Vuex/Vuexfire]

从集合 firebase angular/typescript 中获取所有文档

如何使用集合更新 firebase firestore 文档中的字段

Firebase v9,无法从嵌套集合中获取文档

收到错误:“在交易中读取的每个文档也必须写入Firebase”

Firebase 函数 - 在子集合中创建文档时从主集合中获取数据

如何获取Firebase中另一个集合的文档中的集合

如何检索集合中的所有文档并查看Firebase Firestore中是否存在文档?

从 Firebase 的 Cloud Firestore 中删除文档会删除该文档中的任何子集合吗?

在Firebase中覆盖文档

从 Firebase 中删除文档