Skip to content

[firebase database] Iterate over snapshot.value - snapshot.forEach doesn't exist #11799

Description

@gurmukhp

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)


Activity

  1. changed the title [-]snapshot.forEach doesn't exist.[/-] [+]snapshot.forEach doesn't exist. [firebase-database][/+] on Aug 28, 2017
  2. changed the title [-]snapshot.forEach doesn't exist. [firebase-database][/-] [+][firebase database] Iterate over snapshot.value - snapshot.forEach doesn't exist[/+] on Aug 28, 2017
  3. kroikie commented on Oct 13, 2019

    @kroikie

    @gurmukhp

    This issue has been moved to firebase/flutterfire#971. Any further collaboration will be done there.

  4. github-actions commented on Aug 27, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  5. locked as resolved and limited conversation to collaborators on Aug 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    p: firebaseObsolete - Firebase plugins

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions