将数据上传到Cloud Firestore的数据库

时间:2020-05-26 13:34:20

标签: flutter google-cloud-firestore

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

Unhandled Exception: Invalid argument: Instance of 'Color'

如何上传?到目前为止,我只在集合中使用了类型字符串

这就是我正在使用的:

final Color _backgroundColor;
...
onPressed: () {
  _firestore.collection('users').add({
    'backgroundColor': _backgroundColor,
  })
}
我应该在集合中选择哪种类型(对于变量Color)?还是应该更改代码中的某些内容?该代码确实有效,因为对于 type string 类型的变量,它不会引发异常。

2 个答案:

答案 0 :(得分:2)

Firestore只能将特定类型的数据存储为listed here。从该文档中可以看到,它无法存储Flutter的Color类型。

因此,您需要定义自己的从Color到Firestore支持的类型的映射。最常见的是将此类数据存储为字符串或3位数字。请参阅How to convert Flutter color to string and back to a color,尤其是有关string conversionnumber conversion的答案。

答案 1 :(得分:1)

您最好的选择可能是json编码。这是一个带有示例的链接。

https://codetober.com/json-encode-decode-with-flutter/

拥有json之后,您可以将其作为文本存储在数据库中。