Если вы используете «стандартную» HTTPS Cloud Function , вам необходимо отправить HTTP-запрос с веб-страницы с помощью JavaScript.Один из способов сделать это - использовать библиотеку axios .
Это довольно просто:
Вы объявляете библиотеку в головной части html-страницы
<head>
...
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
...
</head>
И в своем коде JavaScript вы вызываете функцию облака через ее URL.Вот пример с запросом POST:
axios.post('https://us-central1-<project-id>.cloudfunctions.net/<your-cloud-cunction-name>', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
//Do whatever you wantwith the response object, returned by the HTTPS Cloud Function
})
.catch(function (error) {
console.log(error);
});
В облачной функции вы должны выполнить req.body.firstName
и req.body.lastName
, чтобы получить значения, передаваемые в теле запроса POST.Если вам не нужно передавать значения через тело запроса, вы можете использовать метод GET (и, возможно, передать некоторые значения через строку запроса).
Если вы хотите, в облачной функции, чтобыиспользуйте библиотеку 'busboy' для анализа запроса на загрузку 'multipart/form-data'
(как показано в примере, на который вы ссылаетесь в своем вопросе), в следующем ответе о переполнении стека объясняется, как это сделать с помощью axios:
axiosотправьте запрос на отправку данных формы
Обратите внимание, что Firebase предлагает другой тип облачной функции HTTP: HTTPS вызываемые функции .
С этим типом выможете вызвать его из веб-интерфейса с помощью специальной клиентской библиотеки Cloud Functions, предоставленной Firebase.В документации показан следующий пример:
var addMessage = firebase.functions().httpsCallable('addMessage');
addMessage({text: messageText}).then(function(result) {
// Read result of the Cloud Function.
var sanitizedMessage = result.data.text;
// ...
});
Посмотрите на документ, в котором подробно объясняются все шаги (как написать функцию облака и как ее вызвать).