【问题标题】:Parse Swift: User relations with a "friends request"Parse Swift:与“好友请求”的用户关系
【发布时间】:2015-11-13 03:32:34
【问题描述】:

我对编程和解析有点陌生,但我对它真的很感兴趣。 感谢 parse.com 上提供的教程,我已经知道如何创建 PFUser 以及如何设置用户之间的关系。问题是他们只有一个用户跟随另一个用户的例子。如果个人资料不对任何人开放,我更喜欢像“朋友请求”一样发送,例如在 instagram 中发送。 我该如何编码?我需要考虑什么? 示例代码非常受欢迎:P

【问题讨论】:

    标签: ios swift parse-platform relationship


    【解决方案1】:

    我肯定会按照@MatthewLuiHK 的建议创建一个 FriendRequest 表。但是,我不知道这是否是跟踪谁在关注谁的最佳方式,这仅允许跟踪开放的朋友请求。在我的应用程序中,我使用云代码函数在每个用户的对象中设置 friends 数组,因为没有主密钥就无法修改其他用户。下面是我使用的函数:

    Parse.Cloud.define("handleFriendRequest", function(request, response) {
    
        Parse.Cloud.useMasterKey();
        var query = new Parse.Query(Parse.User);
        //console.log(request.user);
        query.get(request.params.fromUserId).then(function(fromUser) {
    
            console.log("Hello World!");
            fromUser.addUnique("friends", request.user);
            return fromUser.save();
    
        }).then(function(savedFromUser) {
    
            response.success("Successfully made a new friend! :)");
    
        }, function(error) {
    
            response.error("Error occurred: " + error.message);
    
        });
    
    
    });
    

    在调用该函数之前,需要在当前用户friends列中添加指向数组的fromUser指针,然后在字典中的“fromUserId”键下将fromUserobjectId发送到该函数中。

    【讨论】:

    • 那么我说对了吗,这个函数只是处理表中的请求?但是我怎样才能告诉 UserB UserA 发送了一个请求呢?当 UserB 接受它时,我该如何保存它?我知道这是我要求的很多,也许你知道一些主页或任何我可以找到帮助的来源?!像教程一样
    • 嗨,是的,这是正确的。您要做的是创建一个包含 fromUser 和 toUser 列的 FriendRequest 表。当有人发送好友请求时,您可以创建这些对象之一。当您想向用户显示他们在“收件箱”中的请求时,您可以执行一个查询,该查询将显示他们是 toUser 的所有对象。
    • 好的,完美!非常感谢你的帮助!还有一个问题:D 当 UserB 接受请求时我该怎么办?只是删除请求并在两个用户之间设置“真实”关系?就像我说的那样,如果您知道任何可以让我了解该主题的好资源,请告诉我:)
    • 我不知道有关该主题的任何教程,但是当 userB 接受请求时,您将调用我在上面发布的 Cloud Code 函数(您可以在 parse.com 文档中阅读有关 CC 的内容),然后您将删除 FriendRequest 对象。如果我帮助了你,请投票给我的答案! :)
    • 抱歉,我错过了“好友请求”部分。对我来说,“好友请求”机制可以通过在“FollowClass”上添加“确认”属性和推送通知来解决。如果您当前希望它是双向关系,请在 toUser 确认请求后添加另一个“Follow”。从用户类中取出关系的好处是您不必解析每个用户来获取他们的关注状态(更多图表)。对于关心隐私的人,请使用隐私控制。也有一天,您可能想要像 Facebook 页面那样纯粹的“关注”关系^^
    【解决方案2】:

    比较简单。

    注册或登录,调用PFUser的类方法:

    PFUser.signUpInBackgroundWithBlock({...})
    

    如果你想让用户a关注用户b,你可以创建一个follow class,这样以后效率会更高。

    let follow = PFObject(className:"MYAPPFollow")
    follow["fromUser"] = userA
    follow["toUser"]   = userB
    follow.save // remember to save your newly created item
    

    【讨论】:

    • 我自己已经搞定了,但是谢谢 :) 我的问题更多是关于朋友的请求。我不想让仅仅关注某人成为可能,而更像是:用户A想和用户B成为朋友,所以他点击关注,但在他真正关注他之前,用户B必须确认他们是朋友。
    猜你喜欢
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    相关资源
    最近更新 更多