我有一个本地运行的firebase云函数,它是这样实现的
exports.verifyApp = functions.https.onRequest((req, res) => {
const {ref} = req.query;
// some business logic
if( ref === "123") return res.status(200).json({message: "success"});
return res.status(400).json({ error: "invalid-argument", message: "ref not provided" });
})
在前端,我这样调用cloud函数
import {
getFunctions,
httpsCallableFromURL,
} from "firebase/functions";
const verifyClaim = httpsCallableFromURL(
getFunctions(),
"http://localhost:5001/{placeholder}/us-central1/verifyApp?ref=23"
);
verifyClaim()
.then((result) => {
console.log(result);
})
.catch((error) => {
console.log(error.code, error.message);
});
我无法读取/解析从函数发送的自定义错误消息。.catch
块只打印一般的firebase错误代码和消息,即invalid-argument
和internal
。虽然我可以在网络选项卡中看到响应,但.catch
似乎从未收到我从云函数发送的自定义错误消息。
1条答案
按热度按时间bxgwgixi1#
您混淆了Callable Cloud Functions和HTTP Cloud Functions。
您的云函数代码对应于一个HTTP函数(
functions.https.onRequest(...)
),但前端中的代码调用一个可调用函数(const verifyClaim = httpsCallableFromURL(...)
)。你应该调整其中一个,因为你的回答中分享的细节很少,很难建议你调整哪个。