在流中访问firebase文档int字段时遇到问题

时间:2019-12-14 18:35:12

标签: firebase flutter google-cloud-firestore

第一次问这里!

我使用Firebase作为BD在Flutter上编写应用程序,但无法从Stream访问int字段。

这里有一些上下文:

我正在尝试为用户的未读Feed制作徽章通知图标,在Firebase上为每个用户存储一个int变量(unreadFeed),然后将其作为Stream访问,以便每次用户获得未读的Feed。

我的firebase数据库结构是这样的:

Firebase Structure-> 我已经编辑了图像,因此它仅具有此所需的数据。由于存在真实的user.id,因此还隐藏了一些用户ID。

这是带有图标的导航栏项的代码部分:

BottomNavigationBarItem(
          icon: StreamBuilder(
            initialData: _tabBarCount,
            stream: activityFeedRef.document(currentUser.id).get().asStream(),  
            builder: (context, snapshot) { 
              return BadgeIcon( //custom class for Stacked badge Icon
              icon: Icon(Icons.chat, size: 25),
              badgeCount: snapshot.data['unreadFeeds'], //need to pass an int for the badge icon number
          );

问题是徽章图标上的数字实际上正确显示,但是与此同时,我的调试控制台正在显示此数字:

Class 'int' has no instance method '[]'.
Receiver: 0
Tried calling: []("unreadFeeds")

每次我从一个BottomNavigationBarItem移到另一个BottomNavigationBarItem时,都会在UI上短暂获取异常。

我不明白我在做什么。我已经尝试了很多事情,将其转换为int,将snapshot.data放在DocumentSnapshot变量上,然后将其转换为int变量,但是每次我使用snapshot.data ['unreadFeeds']都会发生,尽管我得到了值。

我需要以其他方式访问它吗?非常感谢您的帮助,谢谢!

0 个答案:

没有答案