【发布时间】:2021-05-30 16:22:05
【问题描述】:
使用 swift 和 firestore 并尝试实现类似这样的服务器:
chatId: String
eventCreatorId: String
matchedUserId: String
eventId: String
messages: [
{userId: String, timestamp:timestamp, messageText: String},
{userId: String, timestamp:timestamp, messageText: String},
],
换句话说,对于 MVVM 设计,我想上传一组模型 但是当我尝试这个时出现类型错误
struct ChatModel: Codable {
var chatId: String
var eventCreatorId: String
var matchedUserId: String
var eventId: String
var messages: [MessageModel]
}
struct MessageModel: Codable {
var userId: String
var timeStamp: Timestamp
var messageText: String
}
如果我尝试上传会发生错误
func uploadMessage(messageText: String, chatId: String) -> Promise<Void> {
return Promise { seal in
guard let currentUser = Auth.auth().currentUser else {
return
}
let timeStamp: Timestamp = Timestamp(date: Date())
let messageModel = MessageModel(userId: currentUser.uid,timestamp: timeStamp, messageText: messageText)
print(messageModel)
let _ = db.collection("chats")
.document(chatId)
.updateData(["messages" : FieldValue.arrayUnion([messageModel])]) { error in
if let error = error {
seal.reject(error)
} else {
seal.fulfill(())
}
}
}
}
}
我也试过没有时间戳,但遇到了同样的错误
谁能解释一下我做错了什么?
【问题讨论】:
-
您看到了什么错误?调用后是 Swift 语法错误还是 Firebase 错误?
-
*** 由于未捕获的异常“FIRInvalidArgumentException”而终止应用程序,原因:“不支持的类型:__SwiftValue”以未捕获的 NSException 类型异常终止
-
我认为这是 firebase 错误,firebase 不知道类型
-
这是在哪里发生的?您没有显示实际上会导致该错误的代码
-
对不起,我认为我的错误是在模型结构中,我在我的问题中添加了上传功能
标签: arrays swift firebase google-cloud-firestore upload