add((函数应该返回一个promise。所以你应该能够处理承诺如下:
是否可以等待文档成功写入Firestore?
我有一个组件可以调用服务中的添加函数:
save(){
this.aService.new();
}
在服务中,我有一个标准的角度火力添加功能:
new(){
this.afs.collection<any>(`col/doc/col`).add({
title: "A new Title",
});
}
我希望对组件中成功的add
、update
或操作做出反应,以便在成功写入DB后,我的组件可以显示消息或关闭/隐藏元素。我曾尝试将async / await
添加到组件保存函数中,但我并不太了解如何最好地正确集成它。
this.afs.collection<any>(`col/doc/col`).add({
title: "A new Title",
}).then(result => {
// handle success
}).catch(err => {
// handle error
});
https://firebase.google.com/docs/firestore/quickstart#web-版本-8_2
如果你想从服务中返回承诺,你的功能可能是这样的:
addToDb(): Promise<any> {
return new Promise((resolve,reject) => {
this.afs.collection<any>(`col/doc/col`).add({
title: "A new Title",
}).then(result => {
resolve(result);
}).catch(err => {
reject(err);
});
})
}