#flutter #parse-server
Вопрос:
Я использую Parse SDK в качестве бэкэнда в проекте flutter и хочу установить связь между классом Pomo и пользовательским классом типа Один ко многим, поэтому в данный момент у меня есть:
В Промо-модели:
class Promo extends ParseObject implements ParseCloneable {
Promo() : super('Promo');
Promo.clone() : this();
@override
Promo clone(Map<String, dynamic> map) => Promo.clone()..fromJson(map);
static const String usersKey = 'users';
static const String isActiveKey = 'isActive';
ParseRelation<ParseObject> get users => get(usersKey);
bool get isActive => get<bool>(isActiveKey);
int get value => get<int>(valueKey);
DateTime get expiringDate => get<DateTime>(expiringDateKey);
static Promo parse(ParseObject data) {
ParseRelation<ParseObject> userArray = data.getRelation('User');
print(userArray);
final promo = Promo()
..objectId = data.get(keyVarObjectId)
..set(Promo.usersKey, userArray)
..set(Promo.isActiveKey, data.get(Promo.isActiveKey));
return promo;
}
}
В Промо-сервисе:
static Future<List<Promo>> getActivePromoCode() async {
var query = QueryBuilder<Promo>(Promo())
..whereEqualTo(Promo.isActiveKey, true);
final data = await query.query();
final promoList = List<Promo>.generate(data.count, (index) {
final promoList = data.result[index] as ParseObject;
return Promo.parse(promoList);
});
final relationResponse = await (promoList[0].users.getQuery()).query();
if (relationResponse.success) {
print('sucesso relation ${relationResponse.results.length}');
}
return promoList;
}
но я получил null в результате запроса relationResponse
сообщение:»Запрос выполнен успешно, но результаты не найдены»
Комментарии:
1. Возможно, это отсутствие прав доступа к пользовательскому классу. По умолчанию он защищен, и вы не можете запрашивать пользователей у клиента. Для этого вам нужно будет создать функцию облачного кода.