【问题标题】:Firebase Function returns 400 from get requestFirebase 函数从 get 请求返回 400
【发布时间】:2019-05-12 18:06:59
【问题描述】:

我的本​​地函数在

上运行良好
firebase serve --only functions

但是一旦它被部署到云端,我就不能使用邮递员向它发出相同的获取请求。我在堆栈驱动程序上收到以下错误: Unexpected token u in JSON at position 0 at JSON.parse,我的请求返回以下内容:400. That’s an error.Your client has issued a malformed or illegal request. That’s all we know.

我在本地和 firebase 中发送的数据是 GET 类型为 application/json 的请求,正文为: { "data": { "Celebrity_A": "Brad Pitt", "Celebrity_B": "Angelina Jolie" } }

与本地相比,firebase 功能在远程期望什么请求?

下面是我的功能的开始:

// Main index.ts
exports.funct = functions.https.onRequest(functexp)

// functexp file
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as _request from 'request';
const serviceAccount = require('./credentials.json');
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
});
const db = admin.firestore();

export function functexp(request, response) {
    console.log(`request`);
    console.log(request);
    let celebName_A = null;
    let celebName_B = null;
    if(request !== undefined){
        celebName_A = request.body.data['Celebrity_A'];
        celebName_B = request.body.data['Celebrity_B'];
        console.log(`celebA is ${celebName_A}`)
    } etc...
}

【问题讨论】:

  • 你是否在你的 JSON 周围加上这样的单引号?这是不对的。
  • 嘿,Doug,不,这只是格式错误,抱歉
  • 当您说“托管”时,您是否暗示您正在通过 Firebase 托管 dynamic content 调用该函数?如果是这样,请在此处包含您的rewrites。如果没有,我将从credentials.json 开始,它可能存在于本地而不是远程。请注意,您通常不需要它;在 Functions 中运行时,您只需执行 admin.initializeApp()
  • @Kato 当我说托管时,我指的是它已部署到 firebase 云功能,而不是使用 firebase cli 从我的本地计算机提供服务。我可以确认 config.json 确实存在于远程。
  • 如果您以POST 请求发送数据怎么办?您不会经常看到带有正文的 GET 请求...

标签: firebase google-cloud-functions firebase-admin


【解决方案1】:

尝试以POST 方法发送您的请求,您不会经常看到带有正文的GET 请求,这就是POST 更安全的原因,它永远不会被缓存,最重要的是没有大小限制,也许这就是您的GET 请求不起作用的原因。

希望对你有帮助。

【讨论】:

  • 修复了它。使用 post 请求正文中带有参数的数据是否常见?我的参数包含私有数据,所以我认为最好将它们放在请求正文中。
【解决方案2】:

如果你像我一样登陆这里,因为在尝试使用 POSTMAN 进行 GET 调用时出现 400 错误警告:确保正文中没有任何内容(我在测试时在 POST 和 GET 之间切换并且忘记将正文设置为无)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2020-12-01
    • 2018-05-06
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多