2015-05-22 2 views
0

Я пытаюсь сделать что-то очень просто: каждый раз, когда кто-то новый пользователь регистрируется, я хочу дать ему специальный идентификатор («ab_id»), который будет автоматически увеличиваться (first = 1, second = 2 , и т. д.)Использование инкрементного номера при регистрации нового пользователя

Как это сделать с моей функцией «beforeSave» для таблицы «Пользователи»?

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

    // I need some kind of running number here 

    var running_number = ??? 

    request.object.set("ab_id",12); 
    response.success(); 
}); 

ответ

0

Я бы создать Counter объект - и держать его доступ ограничен только мастер-ключа. Затем использовать его, как это (код предполагает, что Counter объект type из "users" уже существует):

Parse.Cloud.useMasterKey(); 
var query = new Parse.Query("Counter"); 
query.equalTo("type", "users"); 
query.first().then(function(counter) { 
    counter.increment("count"); 
    return counter.save(); 
}).then(function(counter) { 
    // your code here 
    var running_number = counter.get("count"); 

    // etc.. 

}, function(error) { 
    response.error(error); 
}); 

Метод increment является атомарным, так что вы получили, что охвачены.

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