flutter - 将 DateTime 序列化为时间戳以用于 Firestore 颤动
问题描述
我有一个模型课
import 'package:cloud_firestore/cloud_firestore.dart';
class Available{
String uid;
DateTime date;
int stock;
bool isAvailable;
Available({this.date,this.uid,this.stock,this.isAvailable});
Available.fromJson(Map<String, dynamic> json)
: uid = json['UID'],
date = DateTime.parse(json['date'].toDate().toString()),
stock = json['stock'],
isAvailable = json["isAvailable"];
Map<String, dynamic> toJson() {
return {
'UID': uid,
'date': date,
'stock': stock,
'isAvailable': isAvailable,
};
}
}
我有一个可用对象的列表,当我尝试将列表编码为 json 并将其存储到 firestore 时,由于DateTime对象,我似乎无法做到这一点
注意:我正在更新整个列表,如下所示:
var json = jsonEncode(value.map((e) => e.toJson()).toList(),toEncodable: myDateSerializer);
FirebaseFirestore.instance.collection("Availability").doc(element.pid).update({
"dates":jsonDecode(json)
});
但我需要将每个对象的所有日期存储为 firestore 时间戳,因此使用 date.toIso8601String() 或 date.microsecondsSinceEpoch 将不起作用,因为它不会是 firestore 时间戳格式。
解决方案
至少使用 Firebase,您可以直接存储 DateTime 对象。
我认为您的更新使 json 标记加倍。只需通过更新日期即可:update({"dates":myDate
推荐阅读
- websphere - 如何自动启动 IBM WebSphere 应用程序服务器 9.x
- python - 带有工厂的烧瓶应用程序 - 单独的路由文件
- php - 亚马逊产品图片 URL 的 cURL 仅在 localhost 中有效
- python-3.x - get_queryset 不影响 django rest 框架 ModelViewSet 中的查询
- r-markdown - R Markdown - 交叉引用没有“kable”的HTML表格
- java - 获取java中矩阵中连续出现k次的所有数字
- r - 通过闪亮绘制交互式ggplotly图(当前产生一个空图)
- spring-boot - 谷歌作为授权服务器
- c# - ModernUI 程序集在我未修改的代码上引发了转换错误
- php - PHP 函数在 WP 前端与数据库中生成不一致的结果