【发布时间】:2020-10-17 03:45:08
【问题描述】:
这个函数接受一个ServicePoint对象作为参数,它具有以下属性:
- adminId(字符串)
- 名称(字符串)
- 服务类型(枚举)
我希望这个函数创建一个名称为“name+adminId”的新表。这是实现的。 我还希望这个函数创建一个名为 ServicePoints 的新表(如果它不存在的话)。 ServicePoints 存储用户(objectId = adminId)与新表之间的关系。 为了实现这一点,我将“serviceTable”属性的值设置为创建的新表,充当指针。
当我第一次运行代码时,我实现了所需的表。但是,当我第二次运行该函数时,它不会将新行/记录添加到 ServicePoints 表中。 我不知道为什么。
UPDATE 我发现set ParseObject 操作是罪魁祸首。但是,令我惊讶的是,它第一次成功执行。但是每次都失败。这真是 parse_server_sdk_flutter 的荒谬行为。
Future<bool> createServicePoint(ServicePoint servicePoint) async {
String newServicePointName = servicePoint.name + servicePoint.adminId;
var newServiceTable = ParseObject(newServicePointName);
var response = await newServiceTable.save();
if (response.success) {
print('Now adding new row to ServicePoints table');
var servicePointsTable = ParseObject('ServicePoints')
..set<String>("serviceName", servicePoint.name)
..set<String>("adminId", servicePoint.adminId)
..set<String>("serviceType", _typeToLabel[servicePoint.serviceType])
..set<ParseObject>("serviceTable", newServiceTable);
var recentResponse = await servicePointsTable.save();
return recentResponse.success;
} else {
return false;
}
}
【问题讨论】:
-
如果有人想运行,我可以在github上分享测试代码,重现错误。请帮帮我。
-
当您第一次保存时,Parse Server 从您第一次保存的对象中学习并创建列
serviceType作为指向您刚刚创建的名为servicePoint.name + servicePoint.adminId的新类的指针。以下所有请求必须仅将属于此类的对象设置为serviceType列。任何其他类的对象都会失败。这可能是你的问题。 -
哦,我明白了。可能就是这样。感谢您的见解@DaviMacêdo
标签: flutter parse-platform parse-server back4app