【问题标题】:Error in retrieving response from firebase cloud function从 Firebase 云功能检索响应时出错
【发布时间】:2019-01-03 08:44:31
【问题描述】:

我是 Firebase 云函数的初学者。我使用云功能的主要目的是进行身份验证。

index.js(在函数文件夹中)

    var admin = require("firebase-admin");
    const functions = require('firebase-functions');
    const createuser = require('./funs/create_user');
    var serviceAccount = require('./funs/serviceAccount.json');

    admin.initializeApp({
       credential: admin.credential.cert(serviceAccount),
       databaseURL: "//Given by Firebase"
    });


    exports.createuser = functions.https.onRequest(createuser);

create_user.js

    const admin = require("firebase-admin");
    module.exports = function (req,res) {

       if(!req.body.phone)
       {
           return res.status(422).send({error: "Bad Input"});
       }

       const phone = String(req.body.phone).replace(/[^\d]/g,"");

       admin.auth().createUser({ uid: phone })
       .then((user) => res.send(user))
       .catch((err)=>res.status(422).send({error:err}));

       //return 1;

     } 

当我使用 Postman 调用函数时,我将数据传递给云函数:

     {
         "phone": "1212121212"         
      }

我收到响应为“错误输入”,如 if 语句。

删除 if 条件后,我将其作为我的响应

  {
    "error": {
    "code": "auth/invalid-uid",
    "message": "The uid must be a non-empty string with at most 128 
    characters."
  }
 }

【问题讨论】:

  • 如何调用这个 HTTPS 函数以及如何将数据(即电话号码)传递到 HTTP 请求的正文。如果您尝试记录 req.body 会发生什么?
  • 我调用该函数并使用 Postman Web 应用程序传递数据。我已经编辑并附加了图片链接。谢谢

标签: node.js firebase google-cloud-functions


【解决方案1】:

您的 Cloud Function 代码是有效的,我已经在一个 Firebase 项目中成功测试了它,在 HTML 页面中使用如下Axios 库。

axios.post('https://us-central1-xxxxxxxx.cloudfunctions.net/testPhoneNbr', {
    phone: '0471214365'
})
    .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    });

用户已正确创建。

问题可能来自您调用 HTTPS 云函数的方式。

【讨论】:

  • 你说得对,我这次通过Restlet Client web app测试了这个功能。有效。 Postman API 测试服务可能存在问题您回答的最后一句话帮助我找到替代方案。谢谢@Renaud Tarnec。
【解决方案2】:

请在 postman 中将 type="text" 更改为 type="JSON",当点击 POST 请求时

【讨论】:

    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2021-12-15
    • 2021-10-25
    • 2017-10-28
    • 2021-07-22
    相关资源
    最近更新 更多