使用以下异步功能,我从Firebase Firestore实例获取数据:
export async function getSomething(db, id) {
db.collection('someting').doc(id).get().then((doc) => {
if (doc.exists) {
return doc.data();
}
throw new Error('No such document!');
}).catch((error) => {
throw new Error('err', error);
});
}
我这样调用此函数:
getSomething(db, this.id).then((data) => {
console.log(data); // data is empty here
}).catch((err) => {
console.log(err);
});
问题在于,data
函数中的then
上为空。
如何从getSomething
函数中获取数据?返回数据还不够吗?
答案 0 :(得分:3)
如果您想从函数中获取一个值,那么您需要从中返回一些东西。
您有很多return语句,但是它们都在回调函数中。
您自己需要一个getSomething。
return db.collection('someting').doc(id).get().then((doc) => {