В настоящее время я пытаюсь настроить нашу базу данных Firestore для мобильного приложения Flutter, чтобы получать данные из функции Firebase и сохранять их в базе данных.В настоящее время мы пытаемся передать HTTP-запрос к нашему URI и присоединить к нему некоторые данные JSON.
Моя функция выглядит следующим образом:
exports.testFunction = functions.https.onRequest((request, response) => {
var data = {
name: request.body.name,
age: request.body.age
};
var setDoc = db.collection('users').add(data);
response.json({result: `User ${data.name} at age ${data.age} added.`});
return;
});
В настоящее время данные можно получить, когдаиспользуя веб-браузер и запрашивая у https://us-central1-[project-name].cloudfunctions.net/testFunction?name=[string]&age=[int]
.Это также работает в нашем приложении Flutter, используя весь URL-адрес как один аргумент без тела.Однако при попытке запроса cURL из командной строки:
curl -H 'Content-Type: application/json' -d '{"name": "[string]", "age": [int]}' https://us-central1-[project-name].cloudfunctions.net/testFunction
Гипотетически данные должны быть в request.body
, но я получаю сообщение об ошибке, в котором говорится, что запрос не может бытьобрабатываются.Что именно здесь происходит не так?
Позже мы хотим реализовать этот запрос в приложении Dart / Flutter, прикрепив объект JSON к телу http.post
.Есть ли между этим процессом недостающее звено, которое я пропускаю?