Firebase FriendList Relation - PullRequest
       0

Firebase FriendList Relation

0 голосов
/ 29 ноября 2018

Мне нужно показать статус моих друзей.Решения, которые я нашел, приведены ниже.

Метод 1: --------------------

структура

friendlist:
  USER1_ID
    USER2_ID
      name: Soner
      id: USER2_ID

users:
  USER2
      name: Soner
      isonline : true
   USER1
      name: mahmut
      isonline: false

код

foreach(b as firebase.child(friendlist/USER1_ID) ){

firebase.ref("users").child(b).child(isonline).value();

//reult soner:online

 }

Метод 2 -----------

users:
   USER2
      name: Soner
      isonline : true
        friendlist
           USER1:USER1
   USER1
      name: mahmut
      isonline: false
      friendlist:
         USER2_ID:USER2_ID

код:

 firebase.ref(users).orderbychield(friendlist/UserId).equalto(USER1_ID);

//RESULT soner is online

Какой метод мне следует сделать?какой из них прав?Есть какие-нибудь предложения?

1 Ответ

0 голосов
/ 30 ноября 2018

Как правило, вы захотите перейти к первому варианту, поскольку одна из общих рекомендаций для базы данных Firebase Realtime состоит в том, чтобы структура данных была мелкой и ровной.Я часто объясняю это так: держите узлы каждого типа сущности под собственным списком / узлом верхнего уровня.Под разными списками верхнего уровня вы затем используете один и тот же ключ, который позволяет объединять данные из каждого списка.

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

Также см .:

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