gpt4 book ai didi

Swift Firebase 聊天室

转载 作者:行者123 更新时间:2023-11-30 11:32:12 29 4
gpt4 key购买 nike

我有聊天应用程序,可以一对一发送消息(fromId/toId)。我想升级它的聊天室。我怎样才能做到这一点? ChatingRoom 需要什么数据库结构?我还需要做什么?

我的 User.swift 模型:

import Foundation
import Firebase

class User: NSObject {

var id: String?
var name: String?
var login: String?
var email: String?
var profileImageUrl: String?
var role: String?
var isOnline: String?
init(dictionary: [String: AnyObject]) {
self.isOnline = dictionary["isOnline"] as? String
self.id = dictionary["userID"] as? String
self.name = dictionary["name"] as? String
self.login = dictionary["username"] as? String
self.email = dictionary["email"] as? String
self.profileImageUrl = dictionary["profileImageUrl"] as? String
self.role = dictionary["role"] as? String
}
}

Message.swift模型:

import UIKit
import Firebase

class Message: NSObject {

var fromId: String?
var text: String?
var timestamp: NSNumber?
var toId: String?
var imageUrl: String?
var videoUrl: String?
var imageWidth: NSNumber?
var imageHeight: NSNumber?

init(dictionary: [String: Any]) {
self.fromId = dictionary["fromId"] as? String
self.text = dictionary["text"] as? String
self.toId = dictionary["toId"] as? String
self.timestamp = dictionary["timestamp"] as? NSNumber
self.imageUrl = dictionary["imageUrl"] as? String
self.videoUrl = dictionary["videoUrl"] as? String

self.imageWidth = dictionary["imageWidth"] as? NSNumber
self.imageHeight = dictionary["imageHeight"] as? NSNumber
}

func chatPartnerId() -> String? {
return fromId == Auth.auth().currentUser?.uid ? toId : fromId
}
}

最佳答案

目前您有“从/到”。

所以 To 将是一个房间而不是一个人。

用户需要能够加入一个或多个房间才能查看发送到该房间的消息。

所以你需要一个房间节点。

如果您有消息节点,那么您只需按“收件人”(房间)而不是“收件人”(用户)排序即可获取该聊天室中发送的所有消息。发件人始终是撰写消息的用户

关于Swift Firebase 聊天室,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147677/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com