如何通过can code Parse.com设置自定义对象Id

问题描述 投票:0回答:2

我正在使用由 Back4app 托管的 Parse 服务器 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."
}

期待解决方案。

node.js parse-platform parse-cloud-code back4app
2个回答
1
投票

目前似乎无法使用 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
        }
    });
});

0
投票

您可以添加

allowCustomObjectId
并将其设置为 true https://parseplatform.org/parse-server/api/master/ParseServerOptions.html

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.