Мы предоставляем игры для наших клиентов. Идентификаторы игр могут быть двух типов:
- идентификатор нашей компании gameId
- идентификатор игры клиента (он же gameCode)
клиент может использовать свой собственный код игры. чтобы включить это, они должны сопоставить наш gameId с их gameCode (отдельный процесс).
наша база данных firebase работает в соответствии с gameId только нашей компании, что означает, что когда наше приложение загружает клиентов, которые используют gameCode, должны отображатьсяв gameIds, чтобы наше приложение могло работать с ним
мы придумали эту схему, но мы не уверены в этом
у нас будет длинный словарь (около 4000 пользовательских кодов игр) иэто будет отображаться в идентификаторах игр. Когда клиент, использующий gameIds или gameCodes, просто будет использовать этот маршрут в firebase и посмотреть, будет ли существовать и как будет работать отображение
root/games/<gameCode>
{
<gameCode>:<gameId>
}
and
root/games/<gameId>
{
<gameId>:<gameId>
}
, мы можем сделать что-то еще, но боимся, что это будет стоить выполнения запроса:
Теперь, когда клиент приходит с gameId, мы перебираем поддерево игр (которое намного меньше, чем кодов игр ~ около 400 игр) и ищем данный код игры, если он найден, мы получаем отображение
root/games/<gameId> {
"gameCodes":{
gameCode1:true,
gameCode2:true
},
root/games/<gameId> {
"gameCodes":{
gameCode3:true,
gameCode4:true
}
мысли