2016-09-17 2 views
0

Мы пытаемся внедрить уведомления клиента на клиенте, когда мы переносим из Parse. На других платформах, обсуждениях и т. Д. Кажется, что они делают это через облачный код - пару вопросов для сообщества -Parse Migration - клиент для клиента Push Notifications

  1. Должны ли мы открыть мастер-ключ в производстве?
  2. Сработал ли какой-либо следующий сценарий для работы с каким-либо облачным кодом, который они могли бы использовать: Пользователь X-пользователя Y Объект Z ... Пользователь Y получит уведомление, инициированное действием пользователя X в режиме реального времени.

TIA.

ответ

0
  1. No. Главный ключ будет использоваться только в облачную кода на стороне сервера и не будут подвергаться воздействию ваших клиентов, поэтому, когда вы вызываете Push API из облака кода, который необходимо установить useMasterKey: правда

  2. для того, чтобы отправить толчок к вашему Y вам нужно сделать следующее:

    • при создании ParseInstallation в коде клиента убедитесь, что вы также сохранить пользователь там в переменном olumn. Вам нужно сохранить пользователя внутри ParseInstallation, потому что ваше требование - отправить push одному или нескольким пользователям, чтобы знать, какие устройства у этого пользователя есть (у одного пользователя может быть несколько устройств, конечно) вам нужно сохранить ссылку на пользователя внутри ParseInstallation класса

    • Далее вам нужно использовать следующий код для того, чтобы отправить уведомление толчок к пользователю:

Parse.Cloud.afterSave("SendPush", function(request) { 
 

 

 
    var query = new Parse.Query(Parse.User); 
 
    query.equalTo("objectId", "{YOUR_USER_OBJECT_ID"}); 
 
/* here you get the user by it's id. if you have another identifier or you want to use another field you can change it. You can also add multiple conditions if you like */ 
 

 
// here you can add other conditions e.g. to send a push to sepcific users or channel etc. 
 

 
var payload = { 
 
    alert: "YOUR_MESSAGE" 
 
    // you can add other stuff here... 
 
}; 
 

 

 
Parse.Push.send({ 
 
    data: payload, 
 
    where: query 
 
}, { 
 
    useMasterKey: true 
 
}) 
 
.then(function() { 
 
    response.success("Push Sent!"); 
 
}, function(error) { 
 
    response.error("Error while trying to send push " + error.message); 
 
}); 
 
});

Пожалуйста, убедитесь, что вы отправили объектуId пользователя Y из клиента. В случае, если вы не отправляете, вам нужно будет найти способ его получить (возможно, извлекая его из БД)

+0

Большое вам спасибо, Ran! Я предполагаю, что мой главный вопрос заключается в том, чтобы заставить все разрозненные системы говорить друг с другом ... как то, как код облака с парсером поговорит с MongoDB и все это поговорит с AWS. Но это также полезно! – JustK

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