Firebase函数从获取请求返回400

Tri*_*day 3 firebase google-cloud-functions firebase-admin

我的本地功能可以在上正常运行

firebase serve --only functions
Run Code Online (Sandbox Code Playgroud)

但是一旦将其部署到云中,我就无法使用邮递员向其发出相同的get请求。我在stackdriver上收到以下错误: 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...
}
Run Code Online (Sandbox Code Playgroud)

Kar*_*pez 6

尝试将请求作为POST方法发送,您不会GET经常看到带有主体的请求,这就是为什么POST它更安全,永远不会被缓存并且最重要的是没有大小限制,也许这就是导致您的GET请求无法正常工作的原因。

希望能帮助到你。