如何通过代码 Parse.com 设置自定义对象 ID

How to set Custom object Id through could code Parse.com

我正在使用由 Back4app 托管的 Parse server 3.10。我在服务器自定义设置中启用了允许自定义 ID 的选项,{"allowCustomObjectId": true},现在我可以通过这样的 API 调用来设置对象的自定义 ID。

-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."
}

期待解决方案。

目前似乎无法使用 JavaScript 通过云代码设置自定义 ID。解决方法是通过云代码使用 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
        }
    });
});