Проблема с Flutter Isar linkproperty.add()

Я создаю пользователя (элемент коллекции) для хранения в моем чате (элемент коллекции). чат содержит IsarLinks<user>. Я создаю пользователя и сохраняю его (что он делает правильно). но когда я добавляю его, эта ошибка выскакивает.

И это строка, где возникает ошибка

      final _chat = chat()
  ..users.add(store)
  ..chatname = _user.name;

далее сюда я сохраняю чат

      Future<void> MakeChatwithUserAsync(chat _chat)async{
  final isar = await db;

  var isarCollection = isar.chats;
  await isar.writeTxn(() async {
    isar.chats.putSync(_chat);
    // _chat.users.loadSync();
    await _chat.users.save();
  });
  print("chat saved");
}

Используемая версия Isar - isar-3.0.0-dev.7, и флаттер-доктор показывает все нормально. Как это можно исправить?

Я ожидал, что он будет работать идеально, следуя документам, но этого не произошло. Я пытался изучить определения функций и прокрутить в Интернете, но это было бесполезно. Я хочу завершить свой проект по созданию приложения, похожего на WhatsApp, с флаттером.

1 ответ

Вам необходимо сохранить данные пользователя перед вызовом функции .save(). таким образом объект пользователя будет связан с объектом Isar.

      await isar.writeTxn(() async {
    isar.users.putAll(_chat.users);
    isar.chats.putSync(_chat);
    await _chat.users.save();
  });
Другие вопросы по тегам