我无法检索从“ https.onRequest”功能发送回的消息。 Firebase客户端根据错误代码重写了消息,我无法恢复最初发送的正文或JSON。
关于Firebase功能:
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开发控制台中分析了请求的返回,就可以了 正文(响应发送):“用户未激活”
但在正面
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错误代码:用户由于未激活而无法连接。
非常感谢!
答案 0 :(得分:2)
您正在混合可调用和常规HTTP类型的函数。那根本行不通。
在函数方面,您使用onRequest回调将函数声明为常规HTTP type function。这意味着您需要使用HTTP客户端库来访问它。
在客户端,您尝试使用Functions客户端SDK作为callable type function调用该函数。这要求您使用onCall回调声明您的函数,而不是现在使用的onRequest回调。可调用项具有special protocol,由客户端SDK实现。
客户端和服务器必须匹配;现在他们没有。如果要使用可调用函数,请遵循链接文档中的所有说明。如果需要常规的HTTP类型的函数,则不能使用Functions客户端SDK。您必须使用其他HTTP客户端库。