Вызов функции Flutter Cloud с параметрами

У меня есть флаттер-приложение, мой код выглядит так:

  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

См. также:  Как добавить тестовые примеры в Microsoft Test Manager через программу
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. lacas

    решение было

     //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";
    
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: