У меня есть флаттер-приложение, мой код выглядит так:
dynamic result = await CloudFunctions.instance.getHttpsCallable(functionName: 'getAllItemsAfterDatetime').call(
<String, dynamic> {"datetime": "1563109861142"}
);
и файл JS:
exports.getAllItemsAfterDatetime= functions.https.onRequest(async (req, res) => {
if (!mysqlPool) {
mysqlPool = mysql.createPool(mysqlConfig);
}
let datetime = req.body.datetime;
if (datetime == null) datetime = req.query.datetime;
if (datetime == null) datetime = req.params.datetime;
if (datetime == null) datetime = "3100000012120000";
mysqlPool.query('SELECT * FROM items as res WHERE datetime > ' + datetime, (err, results) => {
if (err) {
console.error(err);
res.status(500).send(err);
} else {
res.status(200).send({cnt: res.length, data: JSON.stringify(results)});
}
});
У меня всегда было «3100000012120000», поэтому я не могу получить свой параметр datetime обратно от mobil. Он работает в браузере. Как это сделать в мобильном приложении?
req.parameters — правильное слово или ЧТО?
Спасибо
ОБНОВЛЕНИЕ: решение
//from browser
let datetime = req.body.datetime;
//from mobile
if (datetime == null) datetime = req.body.data.datetime;
//if not set
if (datetime == null) datetime = "3100000012120000";
Вы можете попробовать использовать регулярные выражения для извлечения каждой доли даты, если знаете, что возвращаемое значение имеет фиксированную длину. — person lacas schedule 01.09.2019
Он должен быть req.query.datetime
, поэтому я не вижу ничего плохого в вашем коде. Просто распечатайте весь запрос и проверьте. — person lacas schedule 01.09.2019
Можете ли вы обеспечить вывод печати req.query
и req.body
? — person lacas schedule 01.09.2019
Извините, решение: // из браузера let datetime = req.body.datetime; // с мобильного телефона if (datetime == null) datetime = req.body.data.datetime; // если не установлен if (datetime == null) datetime = 3100000012120000; — person lacas schedule 02.09.2019
решение было