2017-02-17 2 views
0

У нас возникли проблемы с тем, что люди не получают push-уведомления с нашим приложением.Управление Parse _Установка класса после удаления и повторного использования пользователем приложения

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

Если мы вручную удалим все строки, а пользователь установит приложение и дает возможность push, то push теперь отправляются пользователю.

Итак, вопрос заключается в том, как лучше всего справиться с этим сценарием, чтобы убедиться, что каждый из них имеет только одну строку в классе _Installation после установки или переустановки.

Im пытается использовать эту облачную функцию, но не возвращает никаких результатов, даже если в БД есть дополнительные строки для этого пользователя.

``

Parse.Cloud.beforeSave(Parse.Installation, function(request, response) { 

    var userId = request.object.get("user").id; 
    console.log("user id = " + userId) 

    query = new Parse.Query("_Installation"); 
    query.equalTo("user", {__type: "Pointer", className: "User", objectId: userId}) 

    query.find({ useMasterKey: true }).then(function(installations) { 
     console.log("Successfully retrieved " + installations.length + " item"); 
     console.log(installations[0]) 
     console.log(installations) 
     console.log('worked'); 
     response.success("The user has been authorized."); 
    }, function(error) { 
     console.log('failed') 
     response.error("user authorization failed"); 
    }); 

}); 

``

журнала консоли от синтаксического анализа

Feb 20 17:09:33 likemoji-stage app/web.1: user id = t6yQIXiwvG Feb 20 17:09:33 likemoji-stage app/web.1: Successfully retrieved 0 item Feb 20 17:09:33 likemoji-stage app/web.1: undefined Feb 20 17:09:33 likemoji-stage app/web.1: [] Feb 20 17:09:33 likemoji-stage app/web.1: worked

+0

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

ответ

1

Ok упаковывают кого работает в этом проблем, это то, как я ее решил. Могут быть другие способы сделать это.

Parse.Cloud.afterSave(Parse.Installation, function(request, response) { 
    // get the parse user object to use in the query below 
    var user = request.object.get("user") 
    // actual query 
    var query = new Parse.Query(Parse.Installation) 
    query.equalTo("user", user) 
    query.descending("createdAt") 
    query.find({ useMasterKey: true }).then(function(results) {     
    if(typeof results !== 'undefined' && results.length > 0) { 
     return Parse.Object.destroyAll(results, {useMasterKey: true}); 
    } 
    }).then(function() { 
     // Done 
     //console.log('finished') 
    }, function(error) { 
     // Error 
     //console.log('failed') 
    }); 
}); 
Смежные вопросы