我有一个错误...如果某些东西已经存在,我想检查 firebase 的数据库,否则转到错误捕获链。但我找不到错误。const ref = admin.database().ref(`/users/${uid}/programs/${program}/`) ref.once('value', snap => { if (snap.val() !== null) { const registered = Object.values(snap.val()); const kids = Object.keys(registered[0].registered); kids.forEach(kid => { if (children.includes(kid)) { throw new Error('already registered') } }) } }).then(() => { ... set to db不管它发生了什么,然后去赶上。
1 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
不要在异步回调中抛出错误,就像您传递给once. 仅将它们放入承诺回调中:
const ref = admin.database().ref(`/users/${uid}/programs/${program}/`);
ref.once('value').then(snap => {
// ^^^^^
if (snap.val() !== null) {
const registered = Object.values(snap.val());
const kids = Object.keys(registered[0].registered);
kids.forEach(kid => {
if (children.includes(kid)) {
throw new Error('already registered')
}
})
}
// ... set to db
}).catch(err => {
// ...
});
添加回答
举报
0/150
提交
取消
