Skip to content

Firestorye Query, in Action. UI does not detect missing indexes #1169

@Tomaicomm

Description

@Tomaicomm

Has your issue been reported?

  • I have searched the existing issues and confirm it has not been reported.
  • I give permission for members of the FlutterFlow team to access and test my project for the sole purpose of investigating this issue.

Current Behavior

When I define Firestore query on action like below:
image

And I trigger action from UI I get the following Firebase Error due to missing indexes
image

dart_sdk.js:5476 Uncaught (in promise) Error: FirebaseError: [code=failed-precondition]: The query requires a COLLECTION_ASC index for collection users_orders and field users_ref. You can create it here: https://console.firebase.google.com/v1/r/project/aicomm-insp/firestore/indexes?create_exemption=Cldwcm9qZWN0cy9haWNvbW0taW5zcC9kYXRhYmFzZXMvKGRlZmF1bHQpL2NvbGxlY3Rpb25Hcm91cHMvdXNlcnNfb3JkZXJzL2ZpZWxkcy91c2Vyc19yZWYQARoNCgl1c2Vyc19yZWYQAQ

at Object.createErrorWithStack (dart_sdk.js:5476:12)
at Error._throw (dart_sdk.js:8615:18)
at Error.throwWithStackTrace (dart_sdk.js:8612:18)
at async._AsyncCallbackEntry.new.callback (dart_sdk.js:41883:18)
at Object._microtaskLoop (dart_sdk.js:41740:13)
at _startMicrotaskLoop (dart_sdk.js:41746:13)
at dart_sdk.js:37302:9

createErrorWithStack @ dart_sdk.js:5476
_throw @ dart_sdk.js:8615
throwWithStackTrace @ dart_sdk.js:8612
(anonymous) @ dart_sdk.js:41883
_microtaskLoop @ dart_sdk.js:41740
_startMicrotaskLoop @ dart_sdk.js:41746
(anonymous) @ dart_sdk.js:37302
Promise.then (async)
_scheduleImmediateWithPromise @ dart_sdk.js:37300
_scheduleImmediate @ dart_sdk.js:37306
_scheduleAsyncCallback @ dart_sdk.js:41761
_rootScheduleMicrotask @ dart_sdk.js:41943
scheduleMicrotask @ dart_sdk.js:41285
[_asyncCompleteError] @ dart_sdk.js:36966
[_completeError] @ dart_sdk.js:36355
completeError @ dart_sdk.js:36313
(anonymous) @ dart_sdk.js:63465
Promise.then (async)
promiseToFuture @ dart_sdk.js:63467
handleThenable @ utils.dart:116
runBody @ dart_sdk.js:41451
_async @ dart_sdk.js:41483
handleThenable @ utils.dart:115
get @ firestore.dart:409
(anonymous) @ query_web.dart:158
runBody @ dart_sdk.js:41451
_async @ dart_sdk.js:41483
(anonymous) @ query_web.dart:155
guardWebExceptions @ _flutterfire_internals.dart:112
convertWebExceptions @ internals.dart:12
get @ query_web.dart:155
get @ query.dart:397
runBody @ dart_sdk.js:41451
_async @ dart_sdk.js:41483
get @ query.dart:395
queryCollectionOnce @ backend.dart:671
queryUsersOrdersRecordOnce @ backend.dart:500
(anonymous) @ cmp_order_m_a_i_n_widget.dart:2747
(anonymous) @ dart_sdk.js:41432
runUnary @ dart_sdk.js:41265
handleValue @ dart_sdk.js:36468
handleValueCallback @ dart_sdk.js:37039
_propagateToListeners @ dart_sdk.js:37077
[_completeWithValue] @ dart_sdk.js:36912
(anonymous) @ dart_sdk.js:36946
_microtaskLoop @ dart_sdk.js:41740
_startMicrotaskLoop @ dart_sdk.js:41746
(anonymous) @ dart_sdk.js:37302
Promise.then (async)
_scheduleImmediateWithPromise @ dart_sdk.js:37300
_scheduleImmediate @ dart_sdk.js:37306
_scheduleAsyncCallback @ dart_sdk.js:41761
_rootScheduleMicrotask @ dart_sdk.js:41943
scheduleMicrotask @ dart_sdk.js:41792
[_tryToResolveArena] @ arena.dart:248
[_resolve] @ arena.dart:231
resolve @ arena.dart:53
resolve @ recognizer.dart:375
didStopTrackingLastPointer @ monodrag.dart:459
stopTrackingPointer @ recognizer.dart:465
[_giveUpPointer] @ monodrag.dart:471
handleEvent @ monodrag.dart:394
[_dispatch] @ pointer_router.dart:98
(anonymous) @ pointer_router.dart:143
forEach @ dart_sdk.js:28663
[_dispatchEventToRoutes] @ pointer_router.dart:141
route @ pointer_router.dart:127
handleEvent @ binding.dart:465
dispatchEvent @ binding.dart:445
dispatchEvent @ binding.dart:331
[_handlePointerEventImmediately] @ binding.dart:400
handlePointerEvent @ binding.dart:363
[_flushPointerEventQueue] @ binding.dart:320
[_handlePointerDataPacket] @ binding.dart:293
invoke1 @ dart_sdk.js:207087
invokeOnPointerDataPacket @ dart_sdk.js:177005
[_onPointerData] @ dart_sdk.js:178303
(anonymous) @ dart_sdk.js:178901
(anonymous) @ dart_sdk.js:178841
loggedHandler @ dart_sdk.js:178480
_checkAndCall @ dart_sdk.js:5666
dcall @ dart_sdk.js:5671
ret @ dart_sdk.js:63548
main.dart.js:4684

Expected Behavior

For Firestory Query called from action system shall prompt for index deployment like it happens for backend queries.

Steps to Reproduce

  1. Create new page
  2. add button
  3. create action on click that trigers a Firestore query and uses filter
  4. compile
  5. test
  6. you get the error

Reproducible from Blank

  • The steps to reproduce above start from a blank project.

Bug Report Code (Required)

N/A

Context

I want to check in action if partuicular user is already added in the collection

Visual documentation

in the first section I priovided all visuals

Additional Info

The workaround is to create an identical backend query on any of the widgets and that moment systems "sees" that new index needs to be updated / created

Environment

- FlutterFlow version: 3.10.14
- Platform: macbook
- Browser name and version:Microsoft Edge - latest
- Operating system and version affected: N/A

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions