2015-05-27 53 views
0

我無法與分析查詢「或」推送通知發送怎麼推到通道是在列表中,而無需重複

tldr:我希望能夠推通知誰擁有一個2所有用戶訂閱頻道 - 帶有或 - 因此每個用戶(即使訂閱了2個頻道)只能獲得一個通知。

例如:我有以下渠道:

channel1 channel1_sub

想象誰訂閱了channel1channel1_sub用戶 - 我希望能夠送一推,以誰訂閱任一用戶到channel1 OR channel1_sub

實際上用下面的查詢嘗試過(上發佈推):

{ 
    "where": { 
     "channels": { 
      "$in": [ 
       "channel1", 
       "channel1_sub" 
      ] 
     } 
    }, 
    "data": { 
     "alert": "test" 
    } 
} 

這導致2推 - 預期應該是一個 - 如果用戶已經訂閱了兩個頻道!

有幫助嗎?

問候

回答

0

行,所以我發現使用$or運營商的解決方案:

使用PHP-SDK從parse.com:

$cat = array('channel1', 'channel_1_sub'); 
    $or_QUERY=array(); 

    for($z=0; $z<count($cat); $z++) { 
     $query = ParseInstallation::query(); 
     $query->equalTo("channels", $cat[$z]);  
     $or_QUERY[]=$query; 
    } 

    $query_or = ParseQuery::orQueries($or_QUERY); 

    $push_data = array(
     "where" => $query_or, 
     "data" => $data 
    ); 

    ParsePush::send($push_data); 

至極實際上會導致以下推載荷:

{ 
    "where": { 
    "channels": { 
     "$or": [ 
     { 
      "channels": "channel1" 
     }, 
     { 
      "channels": "channel1_sub" 
     } 
     ] 
    } 
    }, 
    "data": { 
    "alert": "test" 
    } 
} 

結果是,如果用戶是subsc ribed到兩個渠道 - 只得到一個推通知:)

+0

編輯我的答案:) - 對不起, –

相關問題