在 Parse 平台上使用 ObjectId 发布新记录
Posted
技术标签:
【中文标题】在 Parse 平台上使用 ObjectId 发布新记录【英文标题】:Post new record with ObjectId on Parse platform 【发布时间】:2021-06-12 14:47:59 【问题描述】:我正在尝试使用 objectId(投诉一)将新记录插入到解析平台表中。
但是,当我进行 POST 调用时:
curl -X POST \
-H "X-Parse-Application-Id: $APPLICATION_ID" \
-H "X-Parse-Master-Key: $MASTER_KEY" \
-H "Content-Type: application/json" \
-d '"objectId": "xdH402yd9z", "field": "testData"' $URL
帖子失败:"code":105,"error":"objectId is an invalid field name."
如何插入现有 objectId 的记录?
注意:我插入的数据与我之前从解析服务器中得到的数据基本相同,但几乎没有细微的变化。
谢谢。
【问题讨论】:
【参考方案1】:默认情况下禁用使用自定义objectId
。您需要在服务器上启用customObjectId
。根据您启动服务器的方式,您可以在 app.js 中尝试以下内容:
const api = new ParseServer(
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.PARSE_SERVER_CLOUD || __dirname + '/cloud/main.js',
appId: process.env.PARSE_SERVER_APPLICATION_ID || 'myAppId',
masterKey: process.env.PARSE_SERVER_MASTER_KEY || '',
//readOnlyMasterKey: process.env.PARSE_SERVER_READ_ONLY_MASTER_KEY,
encryptionKey: process.env.PARSE_SERVER_ENCRYPTION_KEY,
objectIdSize: parseInt(process.env.PARSE_SERVER_OBJECT_ID_SIZE) || 10,
serverURL: process.env.PARSE_SERVER_URL || 'http://localhost:' +process.env.PORT + '/parse',
publicServerURL: process.env.PARSE_PUBLIC_SERVER_URL || 'http://localhost:' +process.env.PORT + '/parse',
allowCustomObjectId: true, // Here's what you need to enable
您可以在此处查看完整示例:https://github.com/netreconlab/parse-hipaa/blob/parse-swift/parse/index.js
也可以设置环境变量:
PARSE_SERVER_ALLOW_CUSTOM_OBJECT_ID = 1
【讨论】:
添加allowCustomObjectId: true
有效!以上是关于在 Parse 平台上使用 ObjectId 发布新记录的主要内容,如果未能解决你的问题,请参考以下文章
Parse 中的 objectId 为 null,虽然在将对象保存到 Parse 云时没有 ParseException
使用 Parse 方法 getObjectInBackgroundWithId 将 objectId 从 viewDidLoad 传递给另一个函数不起作用
将 Small Parse ID 迁移到普通 MongoDB 的 ObjectID