Skip to content

cloud_Firestore store query returns null when the app is used in a different time zone : Flutter #2685

Closed
@momo1606

Description

@momo1606

I have developed an app in UAE(GMT +4 gulf standard time). When the following query is executed with system time zone being as mentioned above , i get the required data. When the app is used in a different country or if i change my system time to a different time zone(i changed it to GMT+5:30 Indian standard time), the query returns null and i get an error when extracting the data.

Future getdetails() async {
  DateTime dt=DateTime.now().toUtc();
  QuerySnapshot r = await Firestore.instance.collection('maqarat_male').
  where('date',isEqualTo: Timestamp.fromDate(DateTime(dt.year,dt.month,dt.day))).getDocuments();

  print(r.documents[0].documentID);
  return r;

}

Data is present in cloud firestore no matter what time is fetched using DateTime.now().
Even if I use DateTime.now().toUtc() i get the same error.

i also queried the above using static values instead of DateTime generated values.

Future getdetails() async {
  //DateTime dt=DateTime.now().toUtc();
  QuerySnapshot r = await Firestore.instance.collection('maqarat_male').
  where('date',isEqualTo: Timestamp.fromDate(DateTime(2020,6,2))).getDocuments();

  print(r.documents[0].documentID);
  return r;

}

now with my system time being set to time zone GMT+4 i get the data and am able to execute the print statement
image

and after changing my system time to a different timezone(this time GMT+3 Arabian Standars Time) i ran across this error while executing the same function.

image

Is the issue with the cloud_function package? i am using cloud_firestore: ^0.13.5

i could also create a document in firestore with any time zone.
So the problem is with the read operations.

these are the logs

E/flutter ( 9032): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: RangeError (index): Invalid value: Valid value range is empty: 0
E/flutter ( 9032): #0      List.[] (dart:core-patch/growable_array.dart:146:60)
E/flutter ( 9032): #1      getdetails (package:mahadalzahra/main.dart:96:20)
E/flutter ( 9032): <asynchronous suspension>
E/flutter ( 9032): #2      MyApp.build (package:mahadalzahra/main.dart:104:5)
E/flutter ( 9032): #3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4576:28)
E/flutter ( 9032): #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4502:15)
E/flutter ( 9032): #5      Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)
E/flutter ( 9032): #6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4481:5)
E/flutter ( 9032): #7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4476:5)
E/flutter ( 9032): #8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3446:14)
E/flutter ( 9032): #9      Element.updateChild (package:flutter/src/widgets/framework.dart:3214:18)
E/flutter ( 9032): #10     RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1148:16)
E/flutter ( 9032): #11     RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1119:5)
E/flutter ( 9032): #12     RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1061:17)
E/flutter ( 9032): #13     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2607:19)
E/flutter ( 9032): #14     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1060:13)
E/flutter ( 9032): #15     WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:941:7)
E/flutter ( 9032): #16     WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:922:7)
E/flutter ( 9032): #17     _rootRun (dart:async/zone.dart:1180:38)
E/flutter ( 9032): #18     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter ( 9032): #19     _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter ( 9032): #20     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter ( 9032): #21     _rootRun (dart:async/zone.dart:1184:13)
E/flutter ( 9032): #22     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter ( 9032): #23     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1003:23)
E/flutter ( 9032): #24     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:23:15)
E/flutter ( 9032): #25     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter ( 9032): #26     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter ( 9032): #27     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flutter ( 9032): 
E/flutter ( 9032): [ERROR:flutter/shell/common/shell.cc(213)] Dart Error: Unhandled exception:
E/flutter ( 9032): RangeError (index): Invalid value: Valid value range is empty: 0
E/flutter ( 9032): #0      List.[] (dart:core-patch/growable_array.dart:146:60)
E/flutter ( 9032): #1      getdetails (package:mahadalzahra/main.dart:96:20)
E/flutter ( 9032): <asynchronous suspension>
E/flutter ( 9032): #2      MyApp.build (package:mahadalzahra/main.dart:104:5)
E/flutter ( 9032): #3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4576:28)
E/flutter ( 9032): #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4502:15)
E/flutter ( 9032): #5      Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)
E/flutter ( 9032): #6      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2627:33)
E/flutter ( 9032): #7      WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:20)
E/flutter ( 9032): #8      RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:284:5)
E/flutter ( 9032): #9      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1113:15)
E/flutter ( 9032): #10     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1052:9)
E/flutter ( 9032): #11     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:861:7)
E/flutter ( 9032): #12     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:23:15)
E/flutter ( 9032): #13     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter ( 9032): #14     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter ( 9032): #15     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions