2015-06-08 5 views
1

Я работаю над гибридным приложением с использованием Ionic framework с Parse в качестве задней части, и я изо всех сил пытаюсь настроить push-уведомления для одиночных пользователей. Я отправляю уведомления через Cloud Code от Parse, и я отправляю push-уведомления всем пользователям, работающим нормально, используя следующее:Parse.com - настройка push-уведомлений для одиноких пользователей

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 
       } 
      } 
     ); 
    } 
); 

В настоящее время, когда пользователь регистрирует запись производится в класс установки (с использованием phonegap-parse-plugin), добавив их идентификатор пользователя в качестве канала. Я сделал это с намерением добавить канал в качестве ограничения запроса при определении того, какие пользователи будут отправлять уведомления, но добавление query.contains('channels', 'user-' + request.user.id); к указанному выше не вызывает никаких уведомлений (но сообщает об успехах в облачном коде).

Я также читал о добавлении пользователя в качестве указателя на класс установки, но это означает, что на устройстве может быть только один пользователь.

Каков наилучший способ позволить мне отправлять push-уведомления одному пользователю с помощью Cloud Code? Спасибо!

ответ

1

Вы можете увидеть результаты запроса на установку, в котором вы добавляете ограничение;

query.contains('channels', 'user-' + request.user.id); 

Проблема может быть пустым результатом. Проверь это. Одно из предложений одиночной цели с одиночным нажатием - просто использовать идентификатор пользователя. Сохраните идентификатор пользователя в таблице установки и отправьте push-уведомление, основанное на ограничении запроса, где равно. Надеюсь это поможет.

С уважением.

+0

Ack, да, набор результатов был просто пустым, это был заказ выполнения. Я тестировал регистрацию пользователя и использовал крюк afterSave в классе _User, но установка была создана ПОСЛЕ пользователя (поскольку идентификатор необходимо). В последнем запросе используется массив из 1 или более идентификаторов с использованием 'installationQuery.containedIn ('channels', userIds);'. Благодаря! – ChrisSo

Смежные вопросы