![](/img/trans.png)
[英]Returning error status from GCP python cloud function (not 'ok' or 'crash')
[英]Google Cloud Function Not Returning Error Message
我在谷歌云 function 中有以下代码。 创建用户帐户时,它返回状态 200 和注册用户的名称,我可以从成功的 promise 的返回中访问。 一切都按预期工作。 但是,当创建新用户出现错误时,状态会更改为 400,但无论在客户端发生什么,我都会收到“错误:无效参数”错误。 我想从谷歌云 function 传递错误消息。 当我查看云 function 日志时,我可以看到错误代码和错误消息。
我尝试了什么:我确实尝试使用throw new functions.https.HttpsError()
但我收到 CORS 错误消息。
关于让云 function 正确传递错误消息的任何建议?
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
const { getAuth } = require('firebase-admin/auth')
const functions = require('firebase-functions')
const app = initializeApp();
const db = getFirestore();
exports.registerUser = (req, res) => {
let registerDetails = req.body.data;
res.set('Access-Control-Allow-Origin', '*');
if (req.method === 'OPTIONS') {
// Send response to OPTIONS requests
res.set('Access-Control-Allow-Methods', 'GET');
res.set('Access-Control-Allow-Headers', 'Content-Type');
res.set('Access-Control-Max-Age', '3600');
res.status(204).send('');
} else {
console.log(registerDetails)
if(registerDetails.FirstName === undefined || registerDetails.FirstName === ""){
res.status(400).json({data: 'Invalid Request'})
} else {
console.log(registerDetails);
getAuth()
.createUser({
email: registerDetails.Email,
emailVerified: false,
password: registerDetails.Password,
displayName: registerDetails.DisplayName,
disabled: false,
})
.then((userRecord) => {
// See the UserRecord reference doc for the contents of userRecord.
let message = 'Registered user '+registerDetails.DisplayName+".";
res.status(200).json({data: message});
console.log('Successfully created new user:', userRecord.uid);
},(error)=>{
res.status(400).json({code:error.errorInfo.code,message:error.errorInfo.message})
console.log('Error creating new user:', error);
})
}
}
};
对于查看这篇文章的任何人,解决方案是我混淆了 HTTP 和 HTTPS 可调用函数,它们具有不同的语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.