Причина, по которой это происходит, заключается в том, что в поле указано «строка» вместо «число». Я реплицировал сценарий варианта использования, и это мои выводы:
Моя база данных Firestore:
collection: users
>> document: "auto_id"
--customer_id: 111
>> document: "auto_id"
--customer_id: 123
>> document: "auto_id"
--customer_id: 4500
>> document: "auto_id"
--customer_id: 3500
Я настроил в Firestore каждый customer_id
как строку. Тогда при использовании метода Where("customer_id", "==", "111")
даст мне map[customer_id:111]
, но при использовании Where("customer_id", "<", "1000")
или Where("customer_id", "<", 1000)
ничего не даст мне, как вы описали.
Затем я пошел в Firestore и изменил тип каждого поля изstring
to number
и снова выполнил код, так что я получил:
map[customer_id:111]
map[customer_id:123]
Мой пример полного кода в GitHub , который работал для меня.