问题描述
我在我的应用中使用parse server sdk来存储数据库。
我的Back4App仪表板中有三个类,分别是“ _ User”,“ Office”,“ Office_Members” 。
在Office_Members类中,它具有以下列,
- user_id(指向_User的指针)
- office_id(指向办公室的指针)
- 计数
要从Office_Members中获取包括指向_User的指针在内的数据,我正在使用以下代码,
QueryBuilder<ParSEObject> parseQuery = QueryBuilder<ParSEObject>(ParSEObject("Office_Members"))
..whereEqualTo("office_id",ParseResponse_OfficeObject)
..includeObject(["user_id "]);
ParseResponse apiResponse = await parseQuery.query();
输出:
Payload : [{"className":"Office_Members","objectId":"twpDY51PUK","createdAt":"2020-08-14T09:58:59.775Z","updatedAt":"2020-08-14T09:58:59.775Z","office_id":{"__type":"Pointer","className":"Office","objectId":"4dkfSMrwBI"},"user_id":{"__type":"Pointer","className":"_User","objectId":"Hx5xJ5ABxG"},"count":1}]
在有效负载响应中,我没有得到整个user_id指针响应。
那么有人可以帮助我我做错了什么吗?
谢谢。
解决方法
为什么不简单地使用云代码?我不熟悉Flutter,但我可以建议您使用这种替代解决方案。 编写这样的函数。
Parse.Cloud.define("fetchMemberAndUser",async (request) => {
//Pass in ParseResponse_OfficeObject ID as parameter
var objectId = request.params.id;
//Now do a simple get query
var query = new Parse.Query(Parse.Object.extend("Office_Members"));
//Using .includes to get the user profile object
query.include("user_id");
//This will return Office_Memebers Object along with user profile
return query.get(objectId,{useMasterKey:true});
}
,
数据应包括在内。 日志记录功能只是不打印指针数据。
,数据应包括在内。打印功能不打印指针数据。
您可以直接将其打印出来以进行测试,例如
response.results[0].get('user_id').get('name')
在您的模型中,您可以以相同的方式访问,例如
通话模型
if(response.success){
return response.results.map((p) => Example.fromParse(p)).toList();
} else {
throw ParseErrors.getDescription(response.error.code);
}
型号
import 'package:parse_server_sdk/parse_server_sdk.dart';
class Example {
Example({this.id,this.name});
Example.fromParse(ParseObject parseObject) :
id = parseObject.objectId,name = parseObject.get('user_id').get('name');
final String id;
final String name ;
@override
String toString() {
return 'Example{id: $id,name: $name}';
}
}