firebase - 如何在 flutter 中将不同的数据类型添加到 firestore

标签 firebase flutter google-cloud-firestore

在 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/

相关文章:

flutter - 文本校正功能

javascript - Firestore简单排行榜功能

firebase - 在 Firestore 上设置数据时将字符串转换为映射

java - 如何知道 firebase 中的值是增加还是减少?

ios - (iOS + Firebase) 无法将图像从 UITableViewCell 传递到下一个 ViewController

dart - 如何在 flutter 的另一个有状态小部件中访问在一个有状态小部件中创建的对象

javascript - request(...).then 在发出 POST 请求时不是函数错误

android - 程序类型已经存在 : com. google.android.gms.internal.zzfq

ios - Firebase 将数据附加到节点

flutter - 如何在 Flutter web 中逐行读取文件内容