推的目標是_Installation。 在你的問題中,你應該爲設備的相關currentUser維護一個指針'user'。
//afterSave of Sighting
var sighting = request.object;
//means created, not update
if(!sight.existed()){
var location = sighting.get('location');
var userQuery = new Parse.Query(Parse.User);
//1 for example
userQuery.withinKilometeres('location', 1);
var query = new Parse.Query(Parse.Installation);
query.matchesQuery('user', userQuery);
Parse.Push.send({
where:query,
data:{
alert: "this is msg",
title: "this is title"
}
},{useMasterKey:true})
.then(function(){
console.log('push done');
}, function(error){
console.error(error);
});
}
matchesQuery有一個限制。在這種情況下,您不能發送超過1000個用戶(以獲得相關安裝)。
所以我建議你把位置資訊_Installation,它更多的意義(您的用戶可以擁有多個設備,但用戶不能分割至2位)
哇謝謝。解析雲比我預期的要困難得多,那麼這會有效地推送到瞄準位置1公里內的每個安裝嗎? – user3642005
性能取決於您的設計和結果大小。查詢性能是推動的關鍵之一(但有時parse.com延遲可能推遲1〜30分鐘) – ChunTingLin