Функция Firebase возвращает 400 из запроса get - PullRequest
0 голосов
/ 11 декабря 2018

Моя локальная функция прекрасно работает на

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...
}

1 Ответ

0 голосов
/ 14 декабря 2018

Попытайтесь отправить ваш запрос методом POST, вы не видите GET запросов с телом очень часто, и поэтому POST более безопасен, он никогда не кэшируется и, самое главное, нет ограничения по размеру,возможно, это причина того, что ваш GET запрос не работает.

Надеюсь, это поможет.

...