简体   繁体   中英

Sending push notification to a particular user in Parse

I'm having a devil of a time trying to do what seems like the simplest possible thing: I want to send a push notification to a particular user, and I already have the PFUser object for that user.

I tried the following:

// 'recipient' is the PFUser
PFQuery *pushQuery = [PFInstallation query];
[pushQuery whereKey:@"owner" equalTo:recipient];

I also tried replacing "owner" with "user". In both cases, the push seems to succeed (no error reported) but the device never gets the notification.

I know that the device is properly registered and logged in because I can send pushe notifications from the Parse web console.

What's the right way to do this?

Thanks, Frank

I ended up using a nested query to get this.

var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo('objectId', recipient);

var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.matchesQuery('user', userQuery);

Ok, it turns out that this is a two-step process.

When the user logs in or creates an account, you have to put a "user" property in PFInstallation:

    [[PFInstallation currentInstallation] setObject:[PFUser currentUser] forKey:@"user"];
    [[PFInstallation currentInstallation] saveEventually];

Only then will the query work.

That seems like a lot of manual work for something that the Parse server should know without my having to set it up.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM