在Parse for Android上添加双向朋友关系

时间:2014-09-24 18:40:53

标签: android parse-platform relationship friend

我目前正在开发一款具有类似于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”添加到收件人以及创建这种双向关系,这将是很好的。谢谢!

2 个答案:

答案 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版本可以提供更多帮助。