Как установить пользовательский идентификатор объекта через код Parse.com - PullRequest
0 голосов
/ 19 июня 2020

Я использую сервер Parse 3.10, который размещен на Back4app. Я включил параметр, позволяющий разрешить пользовательский идентификатор в пользовательских настройках сервера, {"allowCustomObjectId": true}, и теперь я могу установить пользовательский идентификатор объекта с помощью такого вызова API.

-H "X-Parse-Application-Id: APPLICATIONID"
-H "X-Parse-REST-API-Key: REST_KEY" 
--data-urlencode "{"objectId":"xWMyZ4YEGZ","name":"Nat"}" 
https://parseapi.back4app.com/classes/Test

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

Parse.Cloud.define("setId",async (request) => { 
        const GameScore = Parse.Object.extend("GameScore");
        const gameScore = new GameScore();

        gameScore.set("objectId", "8YgwDJ19qX");
        gameScore.set("name","nat");
        return await gameScore.save(null,{useMasterKey:true});
});

Когда я пытаюсь запустить эту облачную функцию, это ошибка, которую я получить.

{
    "code": 101,
    "error": "Object not found."
}

Жду решений.

1 Ответ

0 голосов
/ 25 июня 2020

Похоже, что в настоящее время невозможно установить собственный идентификатор с помощью облачного кода, используя JavaScript. Обходной путь для этого - использование REST API через облачный код, например:

Parse.Cloud.define("createObjectId", async (request) => {
    //Your custom id
    const objectId = "8YgwDJ18qX";
    //Your Class name and another optional class variable
    const { nameClass, propertyName } = request.params;
    //Make sure to define these environment variables in your server's env file
    const { APPLICATION_ID,  REST_KEY, SERVER_URL } = process.env;
    //Finally call hit the api.
    return Parse.Cloud.httpRequest({
        method: 'POST',
        url: `${SERVER_URL}/classes/${nameClass}`,
        headers: {
            'Content-Type': 'application/json;charset=utf-8',
            'X-Parse-Application-Id':APPLICATION_ID,
            'X-Parse-REST-API-Key':REST_KEY
        },
        body: {
            objectId: objectId,
            name: propertyName
        }
    });
});
...