如何在firebase-flutter中为快照数据指定字段[重复]
Posted
技术标签:
【中文标题】如何在firebase-flutter中为快照数据指定字段[重复]【英文标题】:How to specify field for snapshot data in firebase-flutter [duplicate] 【发布时间】:2021-08-09 09:01:54 【问题描述】:从我有posted 的上一个问题来看,我已经设法向所有设备发送推送通知。以前,我使用的是不同版本的插件:
firebase_core: ^1.0.1
cloud_firestore: ^1.0.1
firebase_dynamic_links: ^0.8.0
但是,我的 firebase 连接的兼容性存在一些问题,因为我需要更改
类路径'com.google.gms:google-services:4.3.5'
到
类路径'com.google.gms:google-services:4.3.8'
所以,由于兼容性问题,我也需要将插件的版本更改为
firebase_core: ^1.2.0
cloud_firestore: ^2.2.0
但是,更改版本后。我的一些代码不起作用。我关心的是如何使用snapshot.data()
指定我想调用的字段。以前,我使用的是snapshot.data()['token']
,它工作正常。但是在我更改firebase_core
的版本后,我无法再次使用该方法。它声明的错误是:
错误:没有为类“Object”定义运算符“[]”。
“对象”来自“飞镖:核心”。尝试将运算符更正为现有运算符,或定义“[]”运算符。 'to': snapshot.data() ['tokenID'],
谁能帮我解决这个问题?提前谢谢你!你们很多人检查完整的代码here
【问题讨论】:
看到这个答案 - ***.com/a/67565026/13840864 【参考方案1】:您可以将snapshot.data()
投射到如下所示的地图:
(snapshot.data() as Map<String, dynamic>) ['tokenID']
查看 migration guide 以获得 cloud_firestore 2.0.0。
随着 withConverter 的发布,许多类/函数需要一个 额外的通用参数。在大多数情况下,类型推断应该采取 为您照顾迁移。但在某些情况下,您可能必须 自己指定通用参数。
【讨论】:
以上是关于如何在firebase-flutter中为快照数据指定字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章