Я получаю следующее сообщение об ошибке ...
Завершение работы приложения из-за необработанного исключения «FIRInvalidArgumentException», причина: «Неверная ссылка на коллекцию. Ссылки на коллекции должны иметь нечетное количество сегментов, но messages / rpt0poc9PIQ7UDcK4FYNDuXOAqo2 имеет 2 '
... когда я вызываю следующую функцию ...
func loadMessages() {
//get last 11 messages
FIRFirestoreService.shared.reference(to: .messages).document(currentId()).collection(chatRoomId).order(by: "date", descending: true).limit(to: 11).getDocuments { (snapshot, error) in
guard let snapshot = snapshot else {
self.initialLoadComplete = true
// start listening for new chat
return
}
let sorted = ((dictionaryFromSnapshots(snapshots: snapshot.documents)) as NSArray).sortedArray(using: [NSSortDescriptor(key: "date", ascending: true)]) as! [NSDictionary]
// remove bad messages
self.loadedMessages = self.removeBadMessages(allMessages: sorted)
self.insertMessages()
self.initialLoadComplete = true
print("we have \(self.messages.count) messages loaded")
// get picture messages
// get old messages in background
// start listening for new chats
}
}
И это как добавить данные в Firestore ...
struct OutgoingMessage {
let messageDictionary: NSMutableDictionary
init(message: String, senderId: String, senderName: String, date: Date, status: String, type: String) {
messageDictionary = NSMutableDictionary(
objects: [message, senderId, senderName, dateFormatter().string(from: date), status, type],
forKeys: ["message" as NSCopying, "senderId" as NSCopying, "senderName" as NSCopying, "date" as NSCopying, "status" as NSCopying, "type" as NSCopying]
)
}
func sendMessage(chatRoomId: String, messageDictionary: NSMutableDictionary, memberIds: [String], membersToPush: [String]) {
let messageId = UUID().uuidString
messageDictionary["messageId"] = messageId
for memberId in memberIds {
FIRFirestoreService.shared.reference(to: .messages).document(memberId).collection(chatRoomId).document(messageId).setData(messageDictionary as! [String : Any])
}
// update recent chat
// send push notification
}
}
Почему Firestore считает ссылку на коллекцию "messages / rpt0poc9PIQ7UDcK4FYNDuXOAqo2"? Куда я иду не так?