HarmonyOS 鸿蒙Next 云数据库的插入报错Code: 1008230002, message: schema parse fail or objectTypeName error.
HarmonyOS 鸿蒙Next 云数据库的插入报错Code: 1008230002, message: schema parse fail or objectTypeName error.
按照云数据库的指南操作,集成了Serverless的云数据库,试了简单的插入数据到数据表报错
Code: 1008230002, message: schema parse fail or objectTypeName error.
使用的SDK是api12, schema.json放在了rawfile 目录, 而且也是最新的schema文件.
云数据库插入代码如下:
async upsert(uid:string,userPhone:string) {
try {
let databaseZone = cloudDatabase.zone("DataStorage");
let userInfo = new UserInfo();
userInfo.uid = uid
userInfo.userPhone = userPhone
userInfo.userEmail = ''
userInfo.userPhotoUrl = ''
userInfo.userPasswordSetted = true
let record = await databaseZone.upsert(userInfo);
console.info(`Succeeded in upserting an userInfo , result: ` + JSON.stringify(record));
} catch (err) {
console.info(`The uid is ` + uid);
console.info(`The userPhone is ` + userPhone);
console.error(`Failed to upsert an userInfo , Code: ${err.code}, message: ${err.message}`);
}
}
最新schema.json代码如下:
{
"schemaVersion": 6,
"permissions": [
{
"permissions": [
{
"role": "World",
"rights": [
"Read"
]
},
{
"role": "Authenticated",
"rights": [
"Read",
"Upsert"
]
},
{
"role": "Creator",
"rights": [
"Read",
"Upsert",
"Delete"
]
},
{
"role": "Administrator",
"rights": [
"Read",
"Upsert",
"Delete"
]
}
],
"objectTypeName": "UserInfo"
}
],
"objectTypes": [
{
"indexes": [],
"objectTypeName": "UserInfo",
"fields": [
{
"isNeedEncrypt": false,
"fieldName": "uid",
"notNull": true,
"isSensitive": false,
"belongPrimaryKey": true,
"fieldType": "String"
},
{
"isNeedEncrypt": false,
"fieldName": "userPhone",
"notNull": false,
"isSensitive": false,
"belongPrimaryKey": false,
"fieldType": "String"
},
{
"isNeedEncrypt": false,
"fieldName": "userEmail",
"notNull": false,
"isSensitive": false,
"belongPrimaryKey": false,
"fieldType": "String"
},
{
"isNeedEncrypt": false,
"fieldName": "userPhotoUrl",
"notNull": false,
"isSensitive": false,
"belongPrimaryKey": false,
"fieldType": "String"
},
{
"isNeedEncrypt": false,
"fieldName": "userPasswordSetted",
"notNull": false,
"isSensitive": false,
"belongPrimaryKey": false,
"fieldType": "Boolean"
}
]
}
]
}
更多关于HarmonyOS 鸿蒙Next 云数据库的插入报错Code: 1008230002, message: schema parse fail or objectTypeName error.的实战教程也可以访问 https://www.itying.com/category-93-b0.html
云数据库指南文档的插入数据库代码例子有坑,我参照新建端云一体化的例子做了一个数据model如下,这样就能插入数据到云数据库了。
import { cloudDatabase } from '@kit.CloudFoundationKit';
class UserInfo extends cloudDatabase.DatabaseObject{
naturalbase_ClassName(): string {
return "UserInfo";
}
uid: string = '[]';
userPhone: string = '';
userEmail: string = '';
userPhotoUrl: string = '';
userPasswordSetted: boolean = true;
}
export { UserInfo };
更多关于HarmonyOS 鸿蒙Next 云数据库的插入报错Code: 1008230002, message: schema parse fail or objectTypeName error.的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
看上去好像没啥问题,检查下是不是version6版本,修改了字段名称,或增加了结构?
提供一些思路,可以尝试一下:
- 浏览器进行AGC云数据库后台,检查已有数据结构是否还正常?object的名称和类型是否对应?检查已有数据列表是否还正常?
- 用浏览器使用导入json文本插入一条测试一下。
- 导出备份旧数据,清空旧数据表,重新再使用IDE插入测试一下。
该错误代码 1008230002
表示在HarmonyOS鸿蒙Next云数据库操作中,插入数据时遇到了模式解析失败或对象类型名称错误的问题。具体原因可能是:
- 模式解析失败:数据库的模式定义与插入的数据结构不匹配,可能是字段类型、字段名称或数据格式不符合预期。
- 对象类型名称错误:在插入数据时,指定的对象类型名称与数据库中定义的类型名称不一致,或者该类型名称不存在。
解决方法:
- 检查插入数据的结构是否与数据库模式定义一致。
- 确认对象类型名称是否正确,确保与数据库中定义的类型名称匹配。
如果问题持续,建议检查数据库模式定义和插入数据的代码逻辑。