Структура базы данных для отправки запросов о дружбе пользователям, которых пользователь еще не отправил - PullRequest
0 голосов
/ 07 июня 2019

Мне нужно внедрить систему запросов на добавление друзей в firebase.И это не нормальная система дружбы.Итак, у меня есть список пользователей.У каждого пользователя есть поле «Оценка».И пользователь должен иметь возможность отправлять запросы пользователям с наибольшим количеством баллов.И повторяющиеся запросы запрещены.

Так что для этого мне нужно запросить пользователей с наивысшей оценкой, используя «orderBy (« оценка »)».Но проблема в том, что я не могу найти, если они уже являются друзьями таким образом.

friends = {
  "userId 1": {
    "userID 2": true,
    "userId 4": true,
    "userId 5": true,
    "userID 15": true
  },
  "userId 2": {
    "userID 1": true,
    "userID 3": true,
    "userID 4": true
  }
}

users = {
  "userID 1": {
    "name": "alex",
    "score": 12
  },
  "userID 2": {
    "name": "alex",
    "score": 40
  },
  "userID 3": {
    "name": "alex",
    "score": 30
  },
  "userID 4": {
    "name": "alex",
    "score": 9
  }
}

, поэтому я прошу способ отфильтровать определенный набор ** не друзей **, упорядоченных по их счету вотношение к конкретному пользователю.

Любая помощь очень ценится.

В настоящее время я могу заказать по баллу.Но не может отфильтровать не-друзей.

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("users");
Query myQuery = myRef.orderByKey("score).limitToFirst(20);

1 Ответ

0 голосов
/ 07 июня 2019

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

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