我无法在颤振 Firestore 上将字段设置为 NULL

Posted

技术标签:

【中文标题】我无法在颤振 Firestore 上将字段设置为 NULL【英文标题】:I can't set field to NULL on flutter firestore 【发布时间】:2021-06-09 06:53:58 【问题描述】:

我使用 JSON 序列化将文档上传到 Firestore。

我刚刚将我的颤振项目更新为 nullsafety,现在我在任何 NULL 字段上都收到此错误:

错误:[cloud_firestore/unknown] 需要一个“Object”类型的值,但得到一个“Null”类型的值

我在课堂上的字段是空的:

字符串?字段;

这是一个错误还是我做错了什么? 在此更新之前,我能够拥有空字段。我使用网络构建

【问题讨论】:

【参考方案1】:

由于新的 null 安全功能,新的 Cloud Firestore 库无法存储 null 值。我建议您使用关键字,例如空格或复杂的字符串作为您的自定义空变量,这应该可以工作 声明

String newNull = 'IntricateNull';

传递到 Firestore

'nullValue':newNull

接收数据时使用

if (value != newNull)//To check value is not null

这不是一个有利的解决方案,但它就是这样。空安全有其缺点和优点。

【讨论】:

你是对的,存储空值似乎是不可能的。我的解决方案是像这样使用 JsonKey:@JsonKey(includeIfNull: false) String?字段; 这是您的选择。我认为它应该可以工作,但你应该检查一次

以上是关于我无法在颤振 Firestore 上将字段设置为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

无法在颤振中访问 Firestore 本地仿真器套件

从 Firestore 中删除文档中的字段

如何使用颤振提供程序从 Firestore 获取数据?

Hibernate Envers审计@Embedded与throws中的基本类型无法在fetch上将字段设置为空值

找不到某些请求的文件。-firestore 颤动

无法通过 Firestore 调用存储在全局变量中