Firebase отвечает только одним документом, когда я запрашиваю его, даже если несколько отвечают критериям запроса - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь написать облачную функцию, которая возвращает пользователей рядом с конкретным местоположением.get_nearby () возвращает список кортежей, содержащих верхнюю и нижнюю границы для запроса геохеша, а затем этот цикл должен запрашивать базу данных пользователей для этих геохешей.

user_ref = db.collection(u'users')

db_response = []
for query_range in get_nearby(lat, long, radius):
    query = user_ref.where(u'geohash', u'>=', query_range[0]).where(u'geohash', u'<=', query_range[1]).get()
    for el in query:
        db_response.append(el.to_dict())

По какой-то причине, когда я запускаю этот код, он возвращает только один документ из моей базы данных, даже если есть три других документа с таким же геохэшем, что и этот.Я знаю, что документы есть, и они возвращаются, когда я запрашиваю всю коллекцию.Что мне здесь не хватает?

edit: В базе данных в настоящее время есть 4 записи, 3 из которых должны быть возвращены в этом запросе:

{
    {name: "Trevor",  geohash: "dnvtz"}, #this is the one that gets returned
    {name: "Test",  geohash: "dnvtz"},
    {name: "Test",  geohash: "dnvtz"}
}  

query_range - кортеж с двумя значениями.Нижняя и верхняя граница геохэш.В данном случае это ("dnvt0", "dnvtz").

1 Ответ

0 голосов
/ 31 марта 2019

Я решил удалить все документы из моей базы данных и затем сгенерировать новый набор образцов данных для работы (все, что было только для тестирования, ничего важного). После отправки новых данных в Firestore все работает. Мое единственное предположение заключается в том, что хотя строки совпадали, я использовал неправильную кодировку для некоторых из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...