【问题标题】:newbie question - firebase svelte-infinite-loading - unable to read new data from firestore新手问题 - firebase svelte-infinite-loading - 无法从 firestore 读取新数据
【发布时间】:2021-05-24 01:51:41
【问题描述】:

我正在尝试在向下滚动时加载数据库内容,但由于我不知道如何正确读取数据而出现错误。错误表明没有data.hits,未定义。这是什么意思?

我使用了这个示例:svelte-infinite-loading sample 并尝试申请使用 firebase,但我不知道如何读取 console.log(data),hits 未定义,但应该是吗?

有人可以帮我吗?

ContentBlocks.svelte

<script>
import InfiniteLoading from "svelte-infinite-loading";

let page = 1;


function fetchData({ detail: { loaded, complete } }) {
        const response = db
            .collection("todos")
            .orderBy("created", "desc")
            .startAfter(page*5)
            .limit(5);
        response.get().then((data) => {
            console.log(data)
            if (data.hits.length) {
                 page += 1;
                 list = [...list, ...data.hits];
                 loaded();
             } else {
                 complete();
             }
        });
    }
</script>

<Box>
    <InfiniteLoading on:infinite={fetchData} />
</Box>

【问题讨论】:

    标签: firebase svelte-3


    【解决方案1】:

    正在使用 async / await 但这仍然可以帮助您(此外,您的列表变量没有在我们可以看到的任何地方声明):

    const results = await queryObj.get(); // queryObj == your response constant
    if (results.docs) {
      list.concat(results.docs.map((doc) => doc.data()));
    }
    

    doc 在这里,为这个问题提供了另一种解决方案:https://firebase.google.com/docs/firestore/query-data/get-data#get_multiple_documents_from_a_collection

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多