Я пытаюсь получить доступ к значениям из DocumentSnapshot, который, насколько мне известно, возвращает карту. Затем я храню ключи на карте в виде списка, из которого я строю ListView. Затем я пытаюсь получить доступ к значениям с помощью итерационных ключей на карте. Хотя я получаю ожидаемый результат и пользовательский интерфейс также отображается в соответствии с требованиями, консоль регистрирует исключение следующим образом.
I/flutter ( 2093): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 2093): The following assertion was thrown building:
I/flutter ( 2093): type 'String' is not a subtype of type 'int' of 'index'
I/flutter ( 2093):
I/flutter ( 2093): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 2093): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 2093): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 2093): https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter ( 2093):
I/flutter ( 2093): When the exception was thrown, this was the stack:
I/flutter ( 2093): #0 _CartState.cartTile.<anonymous closure> (package:zombie/screens/home/nav/tabs/cart.dart:78:71)
I/flutter ( 2093): #1 SliverChildBuilderDelegate.build (package:flutter/src/widgets/sliver.dart:446:15)
I/flutter ( 2093): #2 SliverMultiBoxAdaptorElement._build.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1260:67)
I/flutter ( 2093): #3 _HashMap.putIfAbsent (dart:collection-patch/collection_patch.dart:139:29)
I/flutter ( 2093): #4 SliverMultiBoxAdaptorElement._build (package:flutter/src/widgets/sliver.dart:1260:26)
I/flutter ( 2093): #5 SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1273:55)
I/flutter ( 2093): #6 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2412:19)
I/flutter ( 2093): #7 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1266:11)
I/flutter ( 2093): #8 RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:354:23)
I/flutter ( 2093): #9 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1823:58)
I/flutter ( 2093): #10 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:875:15)
I/flutter ( 2093): #11 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1823:13)
I/flutter ( 2093): #12 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:343:5)
I/flutter ( 2093): #13 RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:427:5)
I/flutter ( 2093): #14 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:78:12)
I/flutter ( 2093): #15 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #16 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:134:11)
I/flutter ( 2093): #17 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:373:11)
I/flutter ( 2093): #18 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #19 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:410:13)
I/flutter ( 2093): #20 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1367:12)
I/flutter ( 2093): #21 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1285:20)
I/flutter ( 2093): #22 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #23 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #24 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #25 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #26 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #27 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #28 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #29 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #30 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #31 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #32 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #33 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #34 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #35 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #36 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #37 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #38 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #39 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #40 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #41 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 2093): #42 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #43 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:259:13)
I/flutter ( 2093): #44 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #45 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:744:15)
I/flutter ( 2093): #46 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #47 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:206:11)
I/flutter ( 2093): #48 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 2093): #49 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:163:11)
I/flutter ( 2093): #50 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:477:7)
I/flutter ( 2093): #51 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:232:7)
I/flutter ( 2093): #52 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:391:14)
I/flutter ( 2093): #53 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1584:7)
I/flutter ( 2093): #54 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:844:18)
I/flutter ( 2093): #55 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:344:19)
I/flutter ( 2093): #56 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:774:13)
I/flutter ( 2093): #57 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
I/flutter ( 2093): #58 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
I/flutter ( 2093): #59 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
I/flutter ( 2093): #60 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:957:5)
I/flutter ( 2093): #64 _invoke (dart:ui/hooks.dart:259:10)
I/flutter ( 2093): #65 _drawFrame (dart:ui/hooks.dart:217:3)
I/flutter ( 2093): (elided 3 frames from package dart:async)
I/flutter ( 2093): ════
Следующее является частью моего кода, который вызывает исключение
Widget cartTile(DocumentSnapshot doc) {
var snap = doc.data;
if(snap == null){
return SizedBox();
}
List<String> _keys = snap.keys.toList();
print(_keys);
return ListView.builder(
itemCount: _keys.length,
physics: BouncingScrollPhysics(),
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: EdgeInsets.fromLTRB(20.0, 3.0, 20.0, 3.0),
child: Material(
elevation: 10.0,
borderRadius: BorderRadius.circular(10.0),
color: Colors.white,
child: InkWell(
borderRadius: BorderRadius.circular(10.0),
onTap: () async {
},
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0, 10.0, 0),
child: ListTile(
leading: CircleAvatar(
radius: 25,
backgroundColor: Colors.white,
backgroundImage: NetworkImage(snap[_keys[index]]['imgPath']),
),
Очевидно, что последняя строка backgroundImage: NetworkImage(snap[_keys[index]]['imgPath']),
является причиной исключения. Я пытался решить это часами, но не смог. Буду признателен за любую помощь. Спасибо.