Я некоторое время искал четкий ответ на этот вопрос, но не смог его найти, поэтому разместил его здесь.
Для моего Message
класса, чтобы удалить или обновить сообщение, Я могу сделать это в Swift:
Для удаления:
func delete() {
guard let realm = realm else {return}
try! realm.write {
realm.delete(self)
}
}
Для обновления:
func update(_ messageText: String) {
guard let realm = realm else {return}
try! realm.write {
.message_text = messageText
}
}
Есть Есть ли аналогичный способ удаления и обновления на Android? То, что я нашел до сих пор, довольно уродливо и сложно и требует уникальных идентификаторов для объектов. Это единственный способ сделать это в Android? Я не хочу идентификаторы для моих объектов. Для Realm идентификаторы кажутся нелогичными, и у моих объектов их тоже нет.
Удалить:
public void delete(String id, Realm realm) {
realm.executeTransactionAsync(realm1 -> {
RealmResults<Message> results = realm.where(Message.class).equalTo("id", id).findAll();
results.deleteAllFromRealm();
}, (Realm.Transaction.OnError) RealmLog::error);
}
Обновить:
public void update(String id, String messageText, Realm realm) {
realm.executeTransactionAsync(realm1 -> {
Message m = realm1.where(Message.class).equalTo("id", id).findFirst();
if (m != null) {
m.updated = date;
realm1.insertOrUpdate(m);
}
}, (Realm.Transaction.OnError) RealmLog::error);
}