Flutter 颤振解析服务器Sdk未保存表中的第二个对象(类)

Flutter 颤振解析服务器Sdk未保存表中的第二个对象(类),flutter,parse-platform,parse-server,back4app,Flutter,Parse Platform,Parse Server,Back4app,此函数将ServicePoint对象作为参数,该参数具有以下属性: adminId(字符串) 名称(字符串) 服务类型(枚举) 我想让这个函数创建一个名为“name+adminId”的新表。这是实现的。 另外,我希望这个函数创建一个名为ServicePoints的新表(如果还没有)。 ServicePoints存储用户(objectId=adminId)与新表之间的关系。 为了实现这一点,我将带有值的“serviceTable”属性设置为创建的新表,充当指针 当我第一次运行代码时,我获得了所

此函数将ServicePoint对象作为参数,该参数具有以下属性:

  • adminId(字符串)
  • 名称(字符串)
  • 服务类型(枚举)
我想让这个函数创建一个名为“name+adminId”的新表。这是实现的。 另外,我希望这个函数创建一个名为ServicePoints的新表(如果还没有)。 ServicePoints存储用户(objectId=adminId)与新表之间的关系。 为了实现这一点,我将带有值的“serviceTable”属性设置为创建的新表,充当指针

当我第一次运行代码时,我获得了所需的表。但是,当我第二次运行该函数时,它不会将新行/记录添加到ServicePoints表中。 我不知道为什么

更新我发现set-ParseObject操作是罪魁祸首。但是,令我惊讶的是,它第一次成功地执行了。但每次都失败了。这真是parse_server_sdk_Flatter的荒谬行为

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;
    }
  }
Future createServicePoint(ServicePoint ServicePoint)异步{
字符串newServicePointName=servicePoint.name+servicePoint.adminId;
var newServiceTable=ParseObject(newServicePointName);
var response=wait newServiceTable.save();
if(response.success){
打印(“正在向ServicePoints表添加新行”);
var servicePointsTable=ParseObject('ServicePoints')
..设置(“serviceName”,servicePoint.name)
..设置(“adminId”,servicePoint.adminId)
..set(“serviceType”,_typeToLabel[servicePoint.serviceType])
..设置(“serviceTable”,newServiceTable);
var recentResponse=await servicePointsTable.save();
返回重新响应。成功;
}否则{
返回false;
}
}

如果有人希望运行,我可以在github上共享测试代码,以重现错误。请帮帮我。当您第一次保存时,Parse Server会从您第一次保存的对象中学习,并创建列
serviceType
,作为指向您刚刚使用name
servicePoint.name+servicePoint.adminId创建的新类的指针。以下所有请求必须仅设置为
serviceType
列中属于此类的对象。任何其他类的对象都将失败。那可能是你的问题。哦,我明白了。可能是这样。感谢您的见解@davidacêdo