Firebase 函数 returns 400 来自 get 请求
Firebase Function returns 400 from get request
我的本地函数在
运行 上工作正常
firebase serve --only functions
但是一旦它被部署到云端,我就无法使用邮递员向它发出相同的 get 请求。我在 stackdriver 上收到以下错误:
Unexpected token u in JSON at position 0 at JSON.parse
,我的要求 returns 如下: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...
}
尝试以 POST
方法发送您的请求,您不会经常看到 GET
请求正文,这就是为什么 POST
更安全,它从不缓存最重要的是没有大小限制,也许这就是导致您的 GET
请求无效的原因。
希望对您有所帮助。
如果你像我一样降落在这里,因为在尝试使用 POSTMAN 进行 GET 调用时出现 400 错误警告:确保体内没有任何东西(我在 POST 和 GET 之间切换测试时忘记将 body 设置为 none)
我的本地函数在
运行 上工作正常firebase serve --only functions
但是一旦它被部署到云端,我就无法使用邮递员向它发出相同的 get 请求。我在 stackdriver 上收到以下错误:
Unexpected token u in JSON at position 0 at JSON.parse
,我的要求 returns 如下: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...
}
尝试以 POST
方法发送您的请求,您不会经常看到 GET
请求正文,这就是为什么 POST
更安全,它从不缓存最重要的是没有大小限制,也许这就是导致您的 GET
请求无效的原因。
希望对您有所帮助。
如果你像我一样降落在这里,因为在尝试使用 POSTMAN 进行 GET 调用时出现 400 错误警告:确保体内没有任何东西(我在 POST 和 GET 之间切换测试时忘记将 body 设置为 none)