Parse platform Parse.com-为单个用户设置推送通知

Parse platform Parse.com-为单个用户设置推送通知,parse-platform,push-notification,ionic-framework,parse-cloud-code,Parse Platform,Push Notification,Ionic Framework,Parse Cloud Code,我正在开发一个混合应用程序,使用Ionic framework和Parse作为后端,我正在努力为单个用户设置推送通知。我通过Parse的云代码发送通知,并使用以下命令向所有正常工作的用户发送推送通知: Parse.Cloud.afterSave( '_User', function(request, response) { Parse.Cloud.useMasterKey(); var installationQuery = new Parse.Q

我正在开发一个混合应用程序,使用Ionic framework和Parse作为后端,我正在努力为单个用户设置推送通知。我通过Parse的云代码发送通知,并使用以下命令向所有正常工作的用户发送推送通知:

Parse.Cloud.afterSave(
    '_User',
    function(request, response) {
        Parse.Cloud.useMasterKey();
        var installationQuery = new Parse.Query(Parse.Installation);

        Parse.Push.send(
            {
                where: installationQuery,
                data: {
                    alert: 'Test notification'
                }
            }, {
                success: function () {
                    // Push was successful
                },
                error: function (error) {
                    // Push failed
                }
            }
        );
    }
);
当前,当用户注册时,将在安装类中创建一个条目(使用),并将其用户ID添加为通道。我这样做的目的是在确定向哪些用户推送通知时添加通道作为查询约束,但添加
query.contains('channels','user-'+request.user.id)不会推送任何通知(但在云代码中报告成功)

我也读过关于将用户添加为安装类指针的内容,但这意味着一个设备只能有一个用户


允许我通过云代码向单个用户发送推送通知的最佳方式是什么?谢谢大家!

您是否可以在添加约束的位置查看安装查询的结果

query.contains('channels', 'user-' + request.user.id);
问题可能是空结果。检查一下。单推单目标的一个建议是只使用用户id。将用户id保存在安装表中,并根据查询约束发送推送通知,其中等于。希望这有帮助


注意。

Ack,是的,结果集只是空的,这是一个执行顺序问题。。我测试了用户注册,并在_user类上使用了afterSave钩子,但是安装是在用户之后创建的(因为需要ID)。最后一个查询使用
installationQuery.containedIn('channels',userid)使用一个包含1个或多个ID的数组。谢谢