繁体   English   中英

谷歌云 Function 不返回错误消息

[英]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 可调用函数,它们具有不同的语法。

请参阅此帖子: Google Cloud Function Cors 仅在引发错误时出错

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM