Я пытаюсь написать облачную функцию 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
проблема.