Description
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
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.
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)