Проверка, превышает ли значение базы данных локальное значение в Firebase - PullRequest
0 голосов
/ 03 марта 2019

Я думаю, что это просто, но, похоже, не могу создать правильный запрос.Я использую Swift с базой данных Firebase Realtime на iOS.

Рассмотрим следующую структуру Firebase:

-DATA
--UID
---LEVEL1
----HIGHSCORE

Я пытаюсь создать запрос, чтобы узнать, является ли конкретный номер HIGHSCORE дляуровень больше, чем локальная переменная.Если это так, я хочу, чтобы возвращение было более высоким значением от Firebase.Если он такой же или ниже, я хочу, чтобы возвращаемый результат был нулевым.

Я пробовал много разных запросов, вот пример:

ref.child("DATA/UID/LEVEL1/HIGHSCORE").queryStarting(atValue: 5000).observeSingleEvent(of: .value, with:

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

Заранее благодарен за любую помощь.

Майк

РЕДАКТИРОВАТЬ: Вот фактический пример JSON:

{
 "DATA" : {
    "USERID" : {
      "LEVEL1" : {
        "HIGHSCORE" : 5000,
      }
    }
  }
}

1 Ответ

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

Я могу думать только о orderByValue:

ref.child("DATA/UID/LEVEL1").orderByValue().queryStarting(atValue: 5000).observeSingleEvent(of: .value, with:

Но это хорошо работает, только если HIGHSCORE является единственным дочерним узлом под LEVEL1.Даже тогда: у него нет пропускной способности или производительности по сравнению с более идиоматическим подходом:

ref.child("DATA/UID/LEVEL1/HIGHSCORE").observeSingleEvent(of: .value, with: { (snapshot) in 
  if snapshot.exists() {
    val score = snapshot.value as! Int
    if score > 5000 {
      ...
    }
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...