back4app 解析,如何将用户对象 ID 应用到另一个类指针中

问题描述

这是我的代码

void SignBusiness() async {
ParseUser currentUser = await ParseUser.currentUser() as ParseUser;
var nr = await currentUser.get('objectId');
ParSEObject Data = await ParSEObject('Business')
  ..set('NamaBisnis',_nama)
  ..set('AlamatBisnis',_alamat)
  ..set('KiloSampah',_kilo)
  ..set('Pemilik',nr);
await Data.save();
Navigator.pushNamedAndRemoveUntil(context,'/home',(route) => false);

}

这段代码运行良好,这是运行的结果

I/Flutter (14263): ╭-- Parse Request

I/Flutter (14263): curl -X POST -H 'content-type: text/plain; charset=utf-8' -H 'user-agent: Flutter Parse SDK 3.0.0' -H 'X-Parse-Application-Id: nQ1FGO9uklC7f9eMKYDuA16pvAjamCYnbI6xD2Zy' -H 'X-Parse-Session-Token: r:329114ed8d08441517f8a765ea22c902' -H 'X-Parse-Client-Key: gRsL6bmbByAL3p5CSvjF6nEL1VtHLsqHIVXzm0Or' -d '{"NamaBisnis":"faf","AlamatBisnis":"sss","KiloSampah":12,"Pemilik":"MOpxjAJCl2"}' https://parseapi.back4app.com/classes/Business

I/Flutter (14263): 

I/Flutter (14263):  https://parseapi.back4app.com/classes/Business

I/Flutter (14263): ╰--

I/Flutter (14263): ╭-- Parse Response

I/Flutter (14263): Class: Business

I/Flutter (14263): Function: ParseApiRQ.create

I/Flutter (14263): Status Code: 111

I/Flutter (14263): Type: IncorrectType

I/Flutter (14263): Error: schema mismatch for Business.Pemilik; expected Pointer<_User> but got String

I/Flutter (14263): ╰-- 

事实证明 POINTER COLUMN 不能填充 USER OBJECT ID.. 即使它们是正确的代码来填充。所以任何人都可以帮助解决这个问题?请..

解决方法

您需要传递对象(不仅是 id)。应该是这样的:

void SignBusiness() async {
ParseUser currentUser = await ParseUser.currentUser() as ParseUser;
ParseObject Data = await ParseObject('Business')
  ..set('NamaBisnis',_nama)
  ..set('AlamatBisnis',_alamat)
  ..set('KiloSampah',_kilo)
  ..set('Pemilik',currentUser);
await Data.save();
Navigator.pushNamedAndRemoveUntil(context,'/home',(route) => false);