Ошибка при запросе диапазона для типа карты - Cloud Firestore & Swift - PullRequest
0 голосов
/ 20 марта 2020

Я хотел бы сделать запрос диапазона по типу карты, это не удалось.
Но это сработает, если я использую значение равно указанному c.

Я хочу выбрать игру, если user1 положительная сумма

Вот моя модель

    games              
      - id1      
         - results  <---Map type
            user1 : 0
            user2 : 10
            user3 : -20
            user4 : 30
      - id2      
         - results  <---Map type
            user1 : 20
            user4 : -10
            user7 : -20
            user5 : 100

Мой код Swift:

let userId = "user1"
let db = Firestore.firestore()
var query = db.collection("games") as Query
query = query.whereField("results.\(userId)",isGreaterThanOrEqualTo: 0) <--- this return nothing 
//query = query.whereField("results.\(userId)",isEqualTo: 20). <--- this will work and return 1
query.getDocuments { (snap, error) in
    guard let documents = snap?.documents else {return}
    print(documents.count)
}

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

gameResults
       -id 
          game_id : id1
          user : user1
          result : 0
       -id 
          game_id : id1
          user : user2
          result : 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...