Javascript Axios with firebase在放置数据时不返回数据
我正在使用React和Firebase以及Axios制作一个调查工具,现在我正在尝试制作一个模板功能,我已经创建了一些调查模板,这些模板存储在Firebase中,现在当用户想要访问模板时,我可以将模板作为json获取,但我无法将其复制到他们的帐户上 这是我用来获取调查模板的代码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
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解释的答案!但我仍然不明白这是怎么回事,或者我应该把它放在哪里,如果我能更清楚地了解这一点,那就太好了:)我还有一个问题,我希望你能帮我解决