Javascript Firebase web客户端重写https.onRequest函数返回的错误消息,如何防止?
我无法检索从“https.onRequest”函数返回的消息。firebase客户端根据错误代码重写消息,我无法恢复最初发送的正文或JSON 有关Firebase功能的:Javascript Firebase web客户端重写https.onRequest函数返回的错误消息,如何防止?,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,我无法检索从“https.onRequest”函数返回的消息。firebase客户端根据错误代码重写消息,我无法恢复最初发送的正文或JSON 有关Firebase功能的: exports.auth = functions.https.onRequest( (request, response) => { cors(request, response, async () => { try { return response.status(
exports.auth = functions.https.onRequest( (request, response) => {
cors(request, response, async () => {
try {
return response.status(200).json({
data: "Hello"
});
} catch (error) {
return response
.status(403)
.send('User not activated')
}
});
});
如果我在chrome开发控制台中分析请求的返回,一切正常:
正文(response.send):“用户未激活”
但在正面
auth: function (email, password) {
var register = firebaseFunctions.httpsCallable('auth');
return register({
email: email,
password: password
})
.then(async (result) => {
// ...
})
.catch((err) => {
throw err
});
}
在我的捕获声明中:
err.message > permission-denied
err.details > undefined
err.code > 403
我不知道如何恢复我发送的“用户未激活”消息,这将允许我更准确地处理403错误代码:用户无法连接,因为它未激活
非常感谢 您混淆了可调用和常规HTTP类型的函数。那根本行不通 在函数方面,使用onRequest回调将函数声明为常规函数。这意味着您需要使用HTTP客户端库来访问它 在客户端,您正试图使用Functions client SDK作为调用函数。这要求您使用onCall回调来声明函数,而不是现在使用的onRequest回调。可调用项具有由客户端SDK实现的
客户端和服务器必须匹配;现在他们没有。如果要使用可调用函数,请按照链接文档中的所有说明进行操作。如果需要常规HTTP类型函数,则不能使用客户端SDK函数。您必须使用其他HTTP客户端库。您将可调用函数和常规HTTP类型函数混为一谈。那根本行不通 在函数方面,使用onRequest回调将函数声明为常规函数。这意味着您需要使用HTTP客户端库来访问它 在客户端,您正试图使用Functions client SDK作为调用函数。这要求您使用onCall回调来声明函数,而不是现在使用的onRequest回调。可调用项具有由客户端SDK实现的 客户端和服务器必须匹配;现在他们没有。如果要使用可调用函数,请按照链接文档中的所有说明进行操作。如果需要常规HTTP类型函数,则不能使用客户端SDK函数。您必须使用其他HTTP客户端库