Я собираюсь выбросить этот ответ, так как фактический подход не ясен из вопроса.
Я бы предложил следующее
users
uid_0
name: "Captain Stubing"
friends:
uid_1: true
uid_2: true
friend_of:
uid_2: true
uid_1
name: "Doc"
friends:
uid_2: true
friend_of:
uid_0: true
uid_2
name: "Gopher"
friends:
uid_0: true
friend_of:
uid_0: true
uid_1: true
Капитан Стабинг два друга, Do c (uid_1) и суслик (uid_2), и он друг Gopher (uid_2)
У c есть друг Gopher и друг Капитана Стабинга
У Суслика есть друзья Капитан Стабинг и До c, а также друг Капитана Стабинга
Эта структура позволяет легко получить друзей двумя способами
1) Если вы являетесь текущим пользователем, прочитайте свой собственный узел друзей, чтобы получить учетные данные всех ваших друзей.
2) Отменить этот процесс и запросить узел users для всех пользователей списки friends_of, где значение uid текущего пользователя равно true
Это своего рода высокоуровневый ответ, поэтому вы можете захотеть сохранить отношения в совершенно отдельном узле, поэтому, например, вы ' запросить адрес пользователя, который вы не читаете в кучу ненужных данных.