簡體   English   中英

解析雲代碼GeoPoint

[英]Parse Cloud Code GeoPoint

我有一個解析應用程序,它具有兩個基本對象。 第一個對象“用戶”具有一個稱為“位置”的屬性,該屬性存儲GeoPoint。

第二個對象是“瞄准”,它具有帶有GeoPoint的“位置”屬性。

在我的雲代碼中,我成功地在“瞄准”對象上引入了一個后保存功能,以便一旦保存了瞄准,便將推送通知發送給每個人。

但是,我試圖實現的只是在一定范圍內發送這些用戶。

我找到了query.withinKilometeres,但是我不明白如何比較所有User。“ Locations”並以保存的對象“ Location”為基礎。 之后,向所有返回的用戶發送推送。

雲代碼對我來說是完全陌生的,因此可以提供任何幫助。

謝謝

詹姆士

推送的目標是_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);
    });

}

matchsQuery有一個限制。 在這種情況下,您發送的用戶數不能超過1000(以獲取相關的安裝)。

因此,我建議您將位置信息放在_Installation中,這樣更有意義(您的用戶可能有多個設備,但用戶無法拆分到2個位置)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM