我目前正在开发一款具有类似于Facebook的友情功能的应用程序(发送请求,如果被接受,他们都会成为朋友)。发送用户可以从列表中选择多个用户,并立即向他们发送所有邀请。发生这种情况时,接收用户将被添加到发送用户的名为“pendingRelation”的关系中。但是,我还希望在发送请求后立即将发送用户添加为所有接收用户的“pendingRelation”。我搞砸了,一直没能找到一个好的解决方案。将所选用户添加为“pendingRelation”的代码很简单。
private boolean sendFriendRequest() {
//Cycles through list of selected friends and adds as "Pending"
for (int i = 0; i < mPendingFriends.size(); i++) { //Cycles through list
mPendingRelation.add(mPendingFriends.get(i));
}
mCurrentUser.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
Log.e(TAG, e.getMessage());
}
}
});
如果有人可以帮助我将发件人作为“pendingRelation”添加到收件人以及创建这种双向关系,这将是很好的。谢谢!
答案 0 :(得分:1)
我实际上已经考虑过使用Parse建立跟随系统,这与您的问题非常相似。您是否考虑过制作新的ParseObject而不是关系?然后你可以添加像ParseUser pendingUser,ParseUser requestUser,boolean isAccepted。
如果你无法从这里找到帮助,你可以尝试将其发布到parse.com问题。
答案 1 :(得分:0)
我正在尝试为我的应用找出相同的东西(虽然我使用的是javascript所以我不能给你工作代码..抱歉。)。
扩展Torsten的答案。一种解决方案是在Parse中创建一个表(类),其中包含字段&#34; pendingFriendRequest&#34; &#34; associatedUserID_requestingUser&#34; &#34; associatedUserID_receivingUser&#34;和&#34;接受(布尔)&#34;。
SIDE注意:您也可以通过查询以这种方式添加匹配功能 这个表(类)并确定是否有两个 &#34; pendingFriendRequests&#34;来自每个用户的另一个用户。
然后,您可以向用户显示查询此表的结果以及选项&#34;接受&#34; (您还可以提供忽略/删除选项,只删除该行)。
用户点击&#34;接受&#34;将其链接到随后创建用户关系的函数。
在javascript中它看起来像这样:
likeAUser: function (userId) {
var currentUser = $rootScope.loggedInUser;
var User = Parse.Object.extend("User");
var user = new User();
user.id = userId;
var likes = currentUser.relation("Likes");
//console.log(likes);
likes.add(user);
return currentUser.save();
},
在您创建新关系的函数中,您将从&#34; pendingRequests&#34;中删除(删除)该行。表
我希望这有帮助, 我一直在努力研究如何做到这一点,这是我可以找出待解决Parse的最佳方式,这使得它更容易与用户类中的关系元素进行交互。对不起,我不知道Android版本可以提供更多帮助。