Steps to Reproduce
I'm new to using Flutter / Dart, apologise in advance if this is something very basic. I've checked through all the documentation for the firebase database plugin and checked all the codelabs, this (what I deem simple) action is frustratingly hard to achieve.
final DatabaseReference reference = FirebaseDatabase.instance.reference().child('/');
final DataSnapshot snapshot = await reference.once();
print(snapshot.value); // returns a JSON object in the console.
How do I iterate over this value? I have tried to cast snapshot.value to a Map<String, String> and also tried snapshot.value.forEach (as in the docs) but this isn't supported.
The flutter logs are unfortunately also not very useful:
Logs
Reloaded 1 of 446 libraries in 464ms.
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
NoSuchMethodError: Class '_InternalLinkedHashMap' has no instance method 'call'.
Receiver: _LinkedHashMap len:1
Tried calling: call()
#0 Object._noSuchMethod (dart:core-patch/object_patch.dart:42)
#1 Object.noSuchMethod (dart:core-patch/object_patch.dart:46)
#2 _MyHomePageState.printFirebaseData (/Users/gurmukh/Library/Developer/CoreSimulator/Devices/96A5FE84-FD46-4A01-884B-E38069E0671E/data/Containers/Data/Application/8A200DD5-9395-4CFB-9545-E6B1C96D7F82/tmp/cryptoporfolioxS4M60/cryptoporfolio/lib/main.dart:73:14)
<asynchronous suspension>
#3 _MyHomePageState.build (/Users/gurmukh/Library/Developer/CoreSimulator/Devices/96A5FE84-FD46-4A01-884B-E38069E0671E/data/Containers/Data/Application/8A200DD5-9395-4CFB-9545-E6B1C96D7F82/tmp/cryptoporfolioxS4M60/cryptoporfolio/lib/main.dart:79:5)
#4 StatefulElement.build (package:flutter/src/widgets/framework.dart:3624:27)
#5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3534:15)
#6 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#7 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#8 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#9 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#10 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#11 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#12 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#13 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#14 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#15 StatelessElement.update (package:flutter/src/widgets/framework.dart:3596:5)
#16 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#17 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#18 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#19 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4250:32)
#20 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4631:17)
#21 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#22 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#23 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#24 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#25 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#26 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#27 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#28 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#29 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#30 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#31 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#32 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#33 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#34 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#35 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#36 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#37 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#38 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#39 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#40 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#41 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#42 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#43 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#44 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#45 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#46 StatelessElement.update (package:flutter/src/widgets/framework.dart:3596:5)
#47 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#48 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#49 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#50 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#51 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#52 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#53 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#54 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#55 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#56 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#57 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#58 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#59 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#60 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#61 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#62 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#63 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#64 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#65 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#66 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#67 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#68 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#69 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#70 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4250:32)
#71 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4631:17)
#72 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#73 _TheatreElement.update (package:flutter/src/widgets/overlay.dart:507:16)
#74 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#75 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#76 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#77 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#78 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#79 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#80 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#81 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#82 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#83 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#84 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#85 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#86 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#87 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#88 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#89 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#90 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#91 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#92 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#93 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#94 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#95 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#96 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#97 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#98 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#99 StatelessElement.update (package:flutter/src/widgets/framework.dart:3596:5)
#100 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#101 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#102 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#103 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#104 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#105 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#106 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#107 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#108 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#109 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#110 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#111 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#112 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#113 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4523:14)
#114 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#115 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#116 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#117 StatelessElement.update (package:flutter/src/widgets/framework.dart:3596:5)
#118 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#119 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#120 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#121 StatelessElement.update (package:flutter/src/widgets/framework.dart:3596:5)
#122 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#123 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#124 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#125 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#126 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#127 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#128 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#129 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#130 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#131 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#132 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#133 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#134 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#135 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#136 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#137 StatelessElement.update (package:flutter/src/widgets/framework.dart:3596:5)
#138 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#139 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#140 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#141 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#142 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#143 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#144 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#145 ProxyElement.update (package:flutter/src/widgets/framework.dart:3781:5)
#146 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#147 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#148 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#149 StatefulElement.update (package:flutter/src/widgets/framework.dart:3671:5)
#150 Element.updateChild (package:flutter/src/widgets/framework.dart:2674:15)
#151 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3546:16)
#152 Element.rebuild (package:flutter/src/widgets/framework.dart:3435:5)
#153 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2260:33)
#154 BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:503:20)
#155 BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:189:5)
#156 BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:695:15)
#157 BindingBase&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:643:9)
#158 BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/rendering/binding.dart:275:20)
#159 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:21)
#160 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:366)
#161 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:394)
#162 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)
Steps to Reproduce
I'm new to using Flutter / Dart, apologise in advance if this is something very basic. I've checked through all the documentation for the firebase database plugin and checked all the codelabs, this (what I deem simple) action is frustratingly hard to achieve.
How do I iterate over this value? I have tried to cast snapshot.value to a Map<String, String> and also tried snapshot.value.forEach (as in the docs) but this isn't supported.
The flutter logs are unfortunately also not very useful:
Logs