Ситуация такова - есть база данных с ключем и логикой определения номера ключа
override static func primaryKey() -> String? {
return "messageId"
}
func IncrementaID() -> Int{
let realm = try! Realm()
return (realm.objects(messages.self).max(ofProperty: "messageId") as Int? ?? 0)+1
}
При инициализации приложения с Firebase скачиваются данные и закладываются в realm
func messageInitial() {
self.ref = Database.database().reference(withPath: "messages")
self.ref.observe(.value, with: {[weak self] (snapshot) in
realm = try! Realm()
for item in snapshot.children {
let messangeBase = MessagesFireBase(snapshot: item as! DataSnapshot)
messagesFirebase.append(messangeBase)
let messageForRealm = messages()
messageForRealm.messageText = messangeBase.messageText
messageForRealm.messageId = messangeBase.messageId
try! realm.write({
realm.add(messageForRealm)
})
}
Проблема что при первом добавление элемента приложение краситься, ибо определитель ключа func IncrementaID() не понимает что в нем есть элементы и выдает ошибку, что не может создать ключ значение 1, но при этом в базу добавляется правильный номер и элемент.
Вопрос - куда копать??