Как получить случайный документ из коллекции пожарного магазина, если у меня есть дополнительные критерии where () с неравенствами? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь написать облачную функцию nodejs для извлечения случайного документа из моей коллекции профилей в firestore следующим образом:

randomProfile = await admin.firestore().collection('profiles')
.where('fieldA', '==', ...)
.where('fieldB', '==', ...)
.where('fieldC', '==' ...)
.where('fieldD', '==',...)
.where('fieldE', '<=', ...)
.where('fieldE', '>=', ...)
.offset(random)
.limit(1)
.get()

Поскольку я использую <= и >= для fieldE, а поскольку firestore допускает неравенства в только для одного поля , я пытаюсь использовать смещение для получения случайного документа.

Моя проблема: как сделатьПрисвоить значение random так, чтобы у меня не было условия «вне границ»?Другими словами, я не хочу, чтобы random превышало количество документов, которые могут быть возвращены запросом ...

Пожалуйста, помогите!Это проблема «сделай или сломай» для продолжения работы с firestore в моем текущем проекте, и я зашел слишком далеко!

Примечание: я не могу использовать это решение из-заfieldE проблема.

...