首页 > 解决方案 > 将数据上传到 Cloud Firestore 的数据库

问题描述

我正在将一些用户数据上传到 firebase 的数据库中,但其中一个变量是背景颜色,它的类型为 Color。

Unhandled Exception: Invalid argument: Instance of 'Color'

我怎样才能上传那个?到目前为止,我只在集合中使用了类型字符串。

这就是我正在使用的:

final Color _backgroundColor;
...
onPressed: () {
  _firestore.collection('users').add({
    'backgroundColor': _backgroundColor,
  })
}

我应该在集合中选择什么类型(对于变量颜色)?还是我应该更改代码中的某些内容?该代码确实有效,因为对于字符串类型的变量,它没有引发异常。

标签: fluttergoogle-cloud-firestore

解决方案


Firestore 只能存储此处列出的特定类型的数据。从该文档中可以看出,它无法存储 Flutter 的Color类型。

因此,您需要定义自己的Color与 Firestore 支持的类型之间的映射。最常见的是将此类数据存储为字符串或 3 位数字。请参阅如何将 Flutter 颜色转换为字符串并返回颜色,特别是关于字符串转换数字转换的答案。


推荐阅读