【问题标题】:How can i ask a firestore request that depend on the first firebase response next.js我如何询问取决于第一个 firebase 响应 next.js 的 firestore 请求
【发布时间】:2021-01-22 21:50:09
【问题描述】:

我想使用我在第一个查询中收到的 uid 进行第二个 Cloud Firestore 查询,但第二个查询不会等待我的代码的第一个响应

  var {data} = useSWR('/api/report', fetcher);
  var userData = [];
  for (var i = 0; i <= data ? data.length : null; i++) {
  var id = data ? data[i].uid : null;
  userData.push(useSWR(data ? '/api/${id}' : null, fetcher).data)
  console.log(data, id, userData);
  }

【问题讨论】:

  • 您可以将上面的代码放入n个异步函数中,并使用await同时使用SWR。

标签: javascript firebase next.js


【解决方案1】:

你可以这样使用它:

async function doFunc(){
  var {data} = await useSWR('/api/report', fetcher);
  var userData = [];
  for (var i = 0; i <= data ? data.length : null; i++) {
    var id = data ? data[i].uid : null;
    userData.push(await useSWR(data ? '/api/${id}' : null, fetcher).data)
    console.log(data, id, userData);
  }
}

已编辑:

import React, { useState } from "react";

export default function Home() {
  const [firstTime, setFirstTime] = useState(false);
  React.useEffect(async () => {
    if (!firstTime) {
      var { data } = await React.useSWR("/api/report", fetcher);
      var userData = [];
      for (var i = 0; i <= data ? data.length : null; i++) {
        var id = data ? data[i].uid : null;
        userData.push(
          await React.useSWR(data ? "/api/${id}" : null, fetcher).data
        );
        console.log(data, id, userData);
      }
      setFirstTime(true);
    }
  }, [firstTime]);

  return <div></div>;
}

【讨论】:

  • 我已经尝试过了,我有一个错误“未处理的运行时错误错误:无效的挂钩调用。挂钩只能在函数组件的主体内部调用。”
  • 你在你的代码中究竟在哪里使用它?
  • 这里:export default function Home() { async function doFunc(){ var {data} = await useSWR('/api/report', fetcher); var userData = []; for (var i = 0; i &lt;= data ? data.length : null; i++) { var id = data ? data[i].uid : null; userData.push(await useSWR(data ? '/api/${id}' : null, fetcher).data) console.log(data, id, userData); } } doFunc(); return (
猜你喜欢
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多