Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 引发了另一个异常:type'_MapStream<;查询快照、列表<;会计摘要>&燃气轮机';不是类型为';列表<;会计摘要>';_Firebase_Flutter_Dart_Stream - Fatal编程技术网

Firebase 引发了另一个异常:type'_MapStream<;查询快照、列表<;会计摘要>&燃气轮机';不是类型为';列表<;会计摘要>';

Firebase 引发了另一个异常:type'_MapStream<;查询快照、列表<;会计摘要>&燃气轮机';不是类型为';列表<;会计摘要>';,firebase,flutter,dart,stream,Firebase,Flutter,Dart,Stream,这是firestore的服务 Stream<List<AccountSummary>> get accountsStream { CollectionReference _accountReference = FirebaseFirestore.instance .collection('borrowers') .doc(uid) .collection('accounts'); return _acco

这是firestore的服务

  Stream<List<AccountSummary>> get accountsStream {
    CollectionReference _accountReference = FirebaseFirestore.instance
        .collection('borrowers')
        .doc(uid)
        .collection('accounts');
    return _accountReference.snapshots().map((snapshot) => snapshot.docs
        .map((document) => AccountSummary.fromMap(document.data()))
        .toList());
  }
Stream获取帐户Stream{
CollectionReference\u accountReference=FirebaseFirestore.instance
.托收(“借款人”)
.doc(uid)
.收款(“账户”);
返回_accountReference.snapshots().map((snapshot)=>snapshot.docs
.map((document)=>AccountSummary.fromMap(document.data())
.toList());
}
这是小部件代码

  Widget build(BuildContext context) {
    final borrowerService =
        Provider.of<BorrowerService>(context, listen: false);
    final List<AccountSummary> accountlist =
        borrowerService.accountsStream ?? [];
    print(accountlist.length);
    return StreamBuilder<List<AccountSummary>>(
      stream: borrowerService.accountsStream,
      builder: (context, AsyncSnapshot<List<AccountSummary>> snapshot) {
        final List<AccountSummary> summary = snapshot.data;
        if (summary != null) {
          return ListView.builder(
            itemCount: summary.length,
            itemBuilder: (context, int index) {
              return AccountTile(summary[index]);
            },
          );
        }
        return Center(
          child: Text('Loading'),
        );
      },
    );
  }
小部件构建(构建上下文){
最终借用服务=
Provider.of(上下文,listen:false);
最终清单会计清单=
借款服务.accountsStream???[];
打印(accountlist.length);
返回流生成器(
stream:borrowerService.accountsStream,
生成器:(上下文,异步快照){
最终列表摘要=snapshot.data;
如果(摘要!=null){
返回ListView.builder(
itemCount:summary.length,
itemBuilder:(上下文,int索引){
返回账户(汇总[索引]);
},
);
}
返回中心(
子项:文本('Loading'),
);
},
);
}
我在UI上收到此错误消息

引发了另一个异常:“映射流”类型不是“列表”类型的子类型 如何修复代码

这就是我在调试控制台中遇到的错误,我在面向对象编程方面做得不多,我认为这与没有获得所需的类有关,或者请提供帮助

═╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following _TypeError was thrown building AccountList(dirty):
type '_MapStream<QuerySnapshot, List<AccountSummary>>' is not a subtype of type
'List<AccountSummary>'
The relevant error-causing widget was:
  AccountList
  
lib\…\Borrowings\borrow_profile_screen.dart:66
When the exception was thrown, this was the stack:
#0      AccountList.build 
package:paisa/widgets/account_list.dart:12
#1      StatelessElement.build 
package:flutter/…/widgets/framework.dart:4620
#2      ComponentElement.performRebuild 
package:flutter/…/widgets/framework.dart:4546

#564    ComponentElement._firstBuild 
package:flutter/…/widgets/framework.dart:4525
#565    ComponentElement.mount 
package:flutter/…/widgets/framework.dart:4520
...     Normal element mounting (7 frames)
#572    SingleChildWidgetElementMixin.mount 
package:nested/nested.dart:223
...     Normal element mounting (7 frames)
#579    _NestedHookElement.mount 
package:nested/nested.dart:188
...     Normal element mounting (7 frames)
#586    SingleChildWidgetElementMixin.mount 
package:nested/nested.dart:223
#587    Element.inflateWidget 
package:flutter/…/widgets/framework.dart:3490
#588    Element.updateChild 
package:flutter/…/widgets/framework.dart:3255
#589    ComponentElement.performRebuild 
package:flutter/…/widgets/framework.dart:4571
#590    StatefulElement.performRebuild 
package:flutter/…/widgets/framework.dart:4719
#591    Element.rebuild 
package:flutter/…/widgets/framework.dart:4262
#592    BuildOwner.buildScope 
package:flutter/…/widgets/framework.dart:2667
#593    WidgetsBinding.drawFrame 
package:flutter/…/widgets/binding.dart:866
#594    RendererBinding._handlePersistentFrameCallback 
package:flutter/…/rendering/binding.dart:286
#595    SchedulerBinding._invokeFrameCallback 
#596    SchedulerBinding.handleDrawFrame 
package:flutter/…/scheduler/binding.dart:1056
#597    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> 
package:flutter/…/scheduler/binding.dart:865
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
The following _TypeError was thrown building AccountList(dirty):
type '_MapStream<QuerySnapshot, List<AccountSummary>>' is not a subtype of type 'List<AccountSummary>'

The relevant error-causing widget was
    AccountList 
lib\…\Borrowings\borrow_profile_screen.dart:66
When the exception was thrown, this was the stack
#0      AccountList.build 
package:paisa/widgets/account_list.dart:12
#1      StatelessElement.build 
package:flutter/…/widgets/framework.dart:4620
#2      ComponentElement.performRebuild 
package:flutter/…/widgets/framework.dart:4546
#3      Element.rebuild 
package:flutter/…/widgets/framework.dart:4262
#4      ComponentElement._firstBuild 
package:flutter/…/widgets/framework.dart:4525
...
═══════ Exception caught by widgets library ═══════════════════════════════════
type '_MapStream<QuerySnapshot, List<AccountSummary>>' is not a subtype of type 'List<AccountSummary>'
The relevant error-causing widget was
    AccountList 
lib\…\Borrowings\borrow_profile_screen.dart:66
════════════════════════════════════════════════════════════════════════════════
═╡ WIDGETS库捕获到异常╞═══════════════════════════════════════════════════════════
生成AccountList(脏)时引发了以下类型错误:
类型“\u MapStream”不是类型的子类型
“列表”
导致错误的相关小部件是:
会计清单
lib\…\Borrowings\borrow\u profile\u屏幕。省道:66
引发异常时,这是堆栈:
#0 AccountList.build
包:paisa/widgets/account\u list.dart:12
#1.build元素
包:flatter/../widgets/framework.dart:4620
#2 ComponentElement.PerformBuild
包:flatter/../widgets/framework.dart:4546
#564组件元素。\u首次构建
包:flatter/../widgets/framework.dart:4525
#565 ComponentElement.mount
包:flatter/../widgets/framework.dart:4520
...     正常元件安装(7个机架)
#572 SingleChildWidgetElement混合安装
包:嵌套/嵌套。省道:223
...     正常元件安装(7个机架)
#579 _NestedHookElement.mount
包装:嵌套/嵌套。省道:188
...     正常元件安装(7个机架)
#586 SingleChildWidgetElementMixin.mount
包:嵌套/嵌套。省道:223
#587 Element.inflateWidget
包:flatter/../widgets/framework.dart:3490
#588 Element.updateChild
包:flatter/../widgets/framework.dart:3255
#589 ComponentElement.performRebuild
包:flatter/../widgets/framework.dart:4571
#590 StatefulElement.PerformBuild
包:flatter/../widgets/framework.dart:4719
#591.重建元素
包:flatter/../widgets/framework.dart:4262
#592 BuildOwner.buildScope
包:flatter/../widgets/framework.dart:2667
#593 WidgetsBinding.drawFrame
包:flatter/../widgets/binding.dart:866
#594渲染器绑定。\u handlePersistentFrameCallback
包:flatter/../rendering/binding.dart:286
#595 SchedulerBinding.\u调用远程回调
#596 SchedulerBinding.handleDrawFrame
包:flatter/../scheduler/binding.dart:1056
#597 SchedulerBinding.scheduleWarmUpFrame。
包:flatter/../scheduler/binding.dart:865
(从类RawReceivePortImpl、类计时器、dart:async和dart:async补丁中删除了11帧)
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ widgets库捕获到异常═══════════════════════════════════
生成AccountList(脏)时引发了以下类型错误:
类型“\u MapStream”不是“List”类型的子类型
导致错误的相关小部件已被删除
会计清单
lib\…\Borrowings\borrow\u profile\u屏幕。省道:66
当抛出异常时,这是堆栈
#0 AccountList.build
包:paisa/widgets/account\u list.dart:12
#1.build元素
包:flatter/../widgets/framework.dart:4620
#2 ComponentElement.PerformBuild
包:flatter/../widgets/framework.dart:4546
#3.重建
包:flatter/../widgets/framework.dart:4262
#4组件元素。\u第一次构建
包:flatter/../widgets/framework.dart:4525
...
═══════ widgets库捕获到异常═══════════════════════════════════
类型“\u MapStream”不是“List”类型的子类型
导致错误的相关小部件已被删除
会计清单
lib\…\Borrowings\borrow\u profile\u屏幕。省道:66
════════════════════════════════════════════════════════════════════════════════

我发现代码有问题

    final List<AccountSummary> accountlist =
        borrowerService.accountsStream ?? [];
    print(accountlist.length);
最终清单会计清单=
借贷者服务.帐户流??[];
打印(accountlist.length);
这段代码就是问题所在。当我把它取下来的时候。它开始工作了

以前我尝试在没有StreamBuild的情况下构建小部件,但我忘记了清理代码。

您可以共享跟踪吗