在 firebase 控制台中,您可以将 bool 值添加为字段甚至是 int。我试图通过代码添加这样的数据类型,但它会生成错误。我的代码看起来像
Int Score;
Bool completion;
void addDetails() {
Map<dynamic, dynamic> data = <dynamic, dynamic>{
Score: 1.0,
completion: false,
};
documentReference.setData(data).whenComplete(() {
print('Uploaded');
}).catchError((e) => print(e));
}
控制台错误
I/flutter ( 3284): Another exception was thrown: type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>'
最佳答案
引号丢失
Map<dynamic, dynamic> data = <dynamic, dynamic>{
'Score': 1.0,
'completion': false,
};
Firestore 只接受有效的 JSON 并且需要引号。 在 JS 中它们可以省略,因为所有对象键都是字符串,但在 Dart 中它们也可以是其他类型(但 JSON 不行)。
关于firebase - 如何在 flutter 中将不同的数据类型添加到 firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52052928/