Принятие функции «Друг запрашивает» в Firestore? - PullRequest
0 голосов
/ 03 ноября 2019

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

Я хочу, чтобы это произошло:

Friends (collection)
    userID (document) 
        list of friends (their uid's)
        .
        .    
        .    
        .

И список друзей добавляется с новым идентификатором пользователя, если пользователь принимает новый запрос.

Вот скриншотмой дб: enter image description here

1 Ответ

0 голосов
/ 03 ноября 2019

Вы должны сначала сосредоточиться на том, как вы собираетесь структурировать свои данные. Если вы хотите сохранить коллекцию «Друзья» для хранения информации о дружбе пользователя, вам необходимо сначала выяснить, какие запросы вы будете выполнять в этой коллекции. В первую очередь вам понадобится: 1. Дружит ли пользователь A с пользователем B и наоборот. 2. Список всех пользователей, с которыми А дружит.

Ваша текущая структура решает оба случая, но попробуйте посмотреть, сможете ли вы улучшить / оптимизировать ее для других вариантов использования. Я оставил бы это вам, но оставил бы вам подсказку. Вы моделируете отношение «имеет много» через таблицу, эффективный способ - хранить информацию о «дружбе» (user1, user2)

Ответ на оригинальный вопрос начинается здесь Вынеобходимо добавить новую пару ключ / значение в коллекцию друзей для данного ключа.

let newRelation = {};
newRelation[friendUID] = {date: new Date().getTime()} // store whatever info you need to store here.
firestore.collection("friends").doc(uid).update(newRelation) // Udpdate the user document to add friendship

Вам также необходимо обновить «дружбу» для друга, просто поменяйте местами ключи для этого.

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