声明自定义异常以与 Firestore 可调用函数和 VueJS 一起使用



到目前为止,我尝试了

一个

class MyException extends Error {
constructor(message, code) {
super(message);
this.code = code;
}
}
exports.MyException = MyException;

VueJS 说"导出没有定义">

如果我只是这样做

exports.MyException = () => {}

然后 Firebase 说 MyException 不是构造函数。当我

throw new MyException()

实际上,一旦异常通过可调用函数传递,它仍然是一个instanceOf吗?

我应该一起去吗

C

try {
let d = await db.collection('x').document('y')
if (!d.exists) {
let e = new Error('Document Does not Exist')
e.code = 'ERR_NO_DOCUMENT'
throw e
}
else {
return d.data()
}
}

C是一种好的做法吗?

如可调用云函数的文档中所述:

若要确保客户端获得有用的错误详细信息,请从 可通过抛出(或返回拒绝的承诺(来调用functions.https.HttpsError实例 .

所以做

try {
let d = await db.collection('x').document('y')
if (!d.exists) {
let e = new Error('Document Does not Exist')
e.code = 'ERR_NO_DOCUMENT'
throw e
}
else {
return d.data()
}
}

行不通。

在可调用云函数中,您需要执行以下操作:

try {
let d = await db.collection('x').document('y')
if (!d.exists) {
let e = new Error('Document Does not Exist')
e.code = 'ERR_NO_DOCUMENT'
throw e
}
else {
return d.data()
}
} catch (error) {
throw new functions.https.HttpsError('internal', error.message);
}

最新更新