Облачные функции для Firebase Ошибка: запрещено

Я пытаюсь отправить multipart/form-data через URLRequest в своем приложении в Cloud Functions для Firebase. И чтобы проверить, связаны ли моя облачная функция и мое приложение, я создал тестовую функцию и развернул ее:

function test(data, callback) {
    console.log("Test begin:");
    console.log(data);
    console.log("Test finish...");
    callback(null, null);
}

exports.test = functions.https.onRequest((request, respond) => {
    console.log("test called");
    test(request.body.data, function(data, error) {
        respond.json({
            data: data, 
            error: error
        });
    });
});

Однако после отправки URLRequest в консоль ничего не выводилось, а вместо этого я получил html в качестве данных. Открывая html, я получаю Error: Forbidden. Your client does not have permission to get URL / from this server. Как это исправить?


person AlexBains    schedule 25.12.2017    source источник


Ответы (2)


Благодаря @Doug Stevenson проблема в том, что я использовал неправильный URL-адрес вместо предоставленного. А URL-адрес можно найти на консоли при развертывании облачной функции.

person AlexBains    schedule 25.12.2017

Cloud Functions имеет специальные способы работы с различными типами входных данных. Это описано здесь.

Для multipart/form-data вы можете получить доступ к содержимому как request.rawBody.

person Doug Stevenson    schedule 25.12.2017
comment
Прежде всего, спасибо за ответ. Я думаю, проблема в том, что облачная функция, которую я написал, ничего не выводила на консоль, другими словами, она никогда не вызывалась. И похоже, мне нужно что-то предоставить firebase, иначе я не смогу отправить ему запрос. Но тем не менее, ссылка, которую вы даете, действительно полезна. - person AlexBains; 25.12.2017
comment
Используете ли вы URL-адрес, который был напечатан на консоли при развертывании? - person Doug Stevenson; 25.12.2017
comment
Я только что попробовал указанный URL-адрес, и это сработало, большое спасибо. - person AlexBains; 25.12.2017
comment
Привет, @DougStevenson. У меня та же проблема, несмотря на то, что я использую URL-адрес, полученный из CLI. Вы случайно не знаете, что это может быть? Спасибо. - person Ivan; 01.05.2018