Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Axios with firebase在放置数据时不返回数据_Javascript_Reactjs_Asynchronous_Firebase Realtime Database_Axios - Fatal编程技术网

Javascript Axios with firebase在放置数据时不返回数据

Javascript Axios with firebase在放置数据时不返回数据,javascript,reactjs,asynchronous,firebase-realtime-database,axios,Javascript,Reactjs,Asynchronous,Firebase Realtime Database,Axios,我正在使用React和Firebase以及Axios制作一个调查工具,现在我正在尝试制作一个模板功能,我已经创建了一些调查模板,这些模板存储在Firebase中,现在当用户想要访问模板时,我可以将模板作为json获取,但我无法将其复制到他们的帐户上 这是我用来获取调查模板的代码 const fetchSurvey = async () => { const res = await axios.get( "/surveys/ckb0kmt3n000e3g5rmjnfw4go/co

我正在使用React和Firebase以及Axios制作一个调查工具,现在我正在尝试制作一个模板功能,我已经创建了一些调查模板,这些模板存储在Firebase中,现在当用户想要访问模板时,我可以将模板作为json获取,但我无法将其复制到他们的帐户上

这是我用来获取调查模板的代码

const fetchSurvey = async () => {
  const res = await axios.get(
    "/surveys/ckb0kmt3n000e3g5rmjnfw4go/content/questions.json"
  );
  console.log(res.data);
};
其中“ckb0kmt3n000e3g5rmjnfw4go”是调查id,当我这样做时,数据成功登录到控制台,但当我使用此模板创建新调查时:

const fetchSurvey = async () => {
  const res = await axios.get(
    "/surveys/ckb0kmt3n000e3g5rmjnfw4go/content/questions.json"
  );
  return res.data
};
const content = {
  title: "Your Survey Title",
  subTitle: "Your Survey Description",
  creatorDate: new Date(),
  lastModified: new Date(),
  questions: fetchSurvey(),
  submitting: true
};
this.setState({
  _id: newId(),
  content: content,
  userId: this.props.user_Id
});


}



    clickHandler = () => {
        const newSurvey = { ...this.state };
        axios
          .put(
            "/surveys/" + this.state._id + ".json?auth=" + this.props.token,
            newSurvey
          )
          .then(res => {
            this.props.onGetSurveyId(res.data._id);
          })
          .catch(error => {
            console.log(error);
          });
      };

在此之后,将创建调查,但问题键将丢失,并且不会呈现任何问题。请帮助我

如果您想从firebase获取数据,您应该使用firebase实例来查询firestore或实时数据库

Firestore查询教程:

实时数据库教程:

const content={
...
问题:fetchSurvey(),
...
};
这是我的国家({
...
内容:内容,,
...
});
那不行<代码>问题:fetchSurvey(),的计算结果为
Promise
您必须在回调中设置状态

componentDidMount(){
访问调查()
。然后(问题=>{
//当你遇到问题时,要么更新现有状态,要么在那里创建所有内容
this.setState(state=>({
……国家,
内容:{
…陈述内容,
问题
}
}));
})
}

好吧,我正在为它使用Firebase Rest API,我不需要强制为它使用Firebase实例,Axios工作得非常完美!您需要传递一个完整的url,包括域、路径、参数,。。对于api,您可以将axios global config的baseUrl设置为by pass:我已经在axios-order.js中创建了所有这些,并且基本路径已经设置为我的firebase凭据,代码中的错误接近content:fetchSurvey(),正如Józef PodleckiThanks解释的答案!但我仍然不明白这是怎么回事,或者我应该把它放在哪里,如果我能更清楚地了解这一点,那就太好了:)我还有一个问题,我希望你能帮我解决