firebase - 如何在 Flutter 中向 Firestore 添加不同的数据类型
问题描述
在 firebase 控制台中,您可以将布尔值添加为字段甚至 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)。
推荐阅读
- scala - 如何将文件夹名称添加到spark中的每一行
- javascript - 如何使用PHP获取另一个被javascript修改的页面的元素内容
- javascript - 让 D3 Force 以更新模式工作
- php - html 验证错误 wp_json_encode
- facebook - Facebook API V3 - 为测试用户创建 Facebook 页面
- java - 发布请求后从服务器端发送 ResponseEntity 时客户端出现 JSON 错误
- r - 如何取消嵌套数据并从 SparkR 中的数组中获取第一个元素?
- android - Android 应用程序在 ArrayList 中插入元素时崩溃
- android - Appium pressKeyCode 生成 IME 动作
- django - 我收到 django 数据库连接错误