import Foundation
import Firebase
import FirebaseFirestoreCombineSwift
import FirebaseAuth
struct Message: Identifiable, Hashable, Codable {
@DocumentID var messageId: String?
let fromId: String
let toId: String
let messageText: String
let timeStamp: Timestamp
let isImage: Bool
let isAudio: Bool
let isVideo: Bool
let user: User?
var id = String {
return messageId ?? UUID().uuidString
}
var chatPartnerId: String {
return fromId == Auth.auth().currentUser?.uid ? toId : fromId
}
var isFromCurrentUser: Bool {
return fromId == Auth.auth().currentUser?.uid
}
}
struct MessageGroup: Identifiable, Hashable {
var id = UUID().uuidString
var messages: [Message]
let date: Date
}
extension MessageGroup {
static let MOCK_MESSAGE_GROUP = [MessageGroup(messages: [Message(fromId: "", told: "", messageText: "Wsp dude", isImage: false, isAudio: false,isVideo: false, user: nil),Message(fromId: "", told: "", messageText: "Wsp dude", isImage: false, isAudio: false,isVideo: false, user: nil),Message(fromId: "", told: "", messageText: "Wsp dude", isImage: false, isAudio: false,isVideo: false, user: nil),Message(fromId: "", told: "", messageText: "Wsp dude", isImage: false, isAudio: false,isVideo: false, user: nil),Message(fromId: "", told: "", messageText: "Wsp dude", isImage: false, isAudio: false,isVideo: false, user: nil)], date: Date())]
}
Message.swift:5:8 Type ‘Message’ does not conform to protocol ‘Decodable’
Message.swift:5:8 Type ‘Message’ does not conform to protocol ‘Encodable’
Message.swift:5:8 Type ‘Message’ does not conform to protocol ‘Equatable’
Message.swift:5:8 Type ‘Message’ does not conform to protocol ‘Hashable’
Message.swift:7:6 Unknown attribute ‘DocumentID’
Message.swift:17:16 Cannot use instance member ‘messageId’ within property initializer; property initializers run before ‘self’ is available
Message.swift:36:170 ‘nil’ requires a contextual type
Message.swift:36:283 ‘nil’ requires a contextual type
Message.swift:36:396 ‘nil’ requires a contextual type
Message.swift:36:509 ‘nil’ requires a contextual type
Message.swift:36:622 ‘nil’ requires a contextual type
I tried to search it all over Stack Overflow but I couldn’t find anything similar to my issues.
Tyleraaron is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.