You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用中如何查询Firebase今日新增的商品数据?

解决Firestore筛选今日新增商品的查询问题

你的查询逻辑存在两个核心问题:

  1. 类型不匹配:DateTime.now().day -1返回的是整数(比如今日是25号则返回24),但Firestore中tarih字段是DateTime类型,整数和DateTime无法直接比较,导致无匹配结果。
  2. 时间区间错误:你需要的是「今日凌晨00:00:00到当前时间」的区间,而非基于天数的数值计算。

修改后的正确查询代码如下:

var today = DateTime.now();
// 构造今日凌晨00:00:00的时间对象
var startOfDay = DateTime(today.year, today.month, today.day);

var response = await FirebaseFirestore.instance
    .collection('sayim')
    .where('sirket', isEqualTo: sirket)
    .where('tarih', isGreaterThanOrEqualTo: startOfDay)
    .where('tarih', isLessThanOrEqualTo: DateTime.now())
    .get();

补充说明

如果你的tarih字段存储的是时间戳(毫秒数),需要将时间对象转换为对应的毫秒数再进行查询:

var startOfDayTimestamp = startOfDay.millisecondsSinceEpoch;
var nowTimestamp = DateTime.now().millisecondsSinceEpoch;

var response = await FirebaseFirestore.instance
    .collection('sayim')
    .where('sirket', isEqualTo: sirket)
    .where('tarih', isGreaterThanOrEqualTo: startOfDayTimestamp)
    .where('tarih', isLessThanOrEqualTo: nowTimestamp)
    .get();

内容的提问来源于stack exchange,提问作者Kerem Yavuz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:10:15