Проблема с 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();
});