【问题标题】:Accepting Friend Requests functionality in Firestore?在 Firestore 中接受好友请求功能?
【发布时间】:2020-02-28 21:09:01
【问题描述】:
我正在尝试使好友请求功能正常工作,我已经完成了发送和接收请求部分,但是当用户接受好友请求时,我不知道如何更新特定用户的好友数据集合。
我希望这发生:
Friends (collection)
userID (document)
list of friends (their uid's)
.
.
.
.
如果用户接受新请求,朋友列表会附加一个新的 uid。
这是我的数据库的屏幕截图:
【问题讨论】:
标签:
javascript
firebase
react-native
google-cloud-firestore
【解决方案1】:
您需要首先关注如何构建数据。如果您想保留“朋友”集合来存储有关用户友谊的信息,您需要首先弄清楚您将对该集合发出什么样的查询。
首先,您将需要:
1. 用户 A 和用户 B 是朋友吗,反之亦然。
2. A 为好友的所有用户列表。
您当前的结构解决了这两种情况,但请尝试看看您是否可以针对其他用例改进/优化它。我会把它留给你,但会给你一个提示。您正在通过表格建模“有很多”关系,一种有效的方法是存储“友谊”信息(user1,user2)
从这里开始回答原始问题
您需要在 Friends 集合中为给定的键添加一个新的键/值对。
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
您还需要更新朋友的“友谊”,只需反转密钥即可。