Я хотел бы сделать запрос диапазона по типу карты, это не удалось.
Но это сработает, если я использую значение равно указанному 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