Swift Firebase чат - PullRequest
       6

Swift Firebase чат

0 голосов
/ 03 мая 2018

У меня есть приложение чата с возможностью отправлять сообщения один на один (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
}
}

1 Ответ

0 голосов
/ 03 мая 2018

Ну, в настоящее время у вас есть С / К.

То есть это будет комната, а не человек.

Пользователи должны иметь возможность присоединиться к комнате (или комнатам) для просмотра сообщений, отправляемых в эту комнату.

Итак, вам нужен узел Rooms.

Если у вас есть узел сообщений, вы можете просто отсортировать по To (комната) вместо To (пользователь), чтобы получить все сообщения, отправленные в этой комнате чата. От всегда будет Пользователь, который написал сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...