首页 > 解决方案 > 执行 segue 以使用户与帖子创建者聊天

问题描述

我尝试创建一个按钮,该按钮应将普通用户与帖子的创建者一起带到 chatController

标签: iosswiftfirebasesegue

解决方案


这里有很多问题,真的太多了,无法在一个答案中解决,但让我试着为你指出正确的方向。

让我们从这个开始

let user = job?.addedByUser
self.messagesController?.showChatControllerForUser(user)

所以用户变量是从作业类分配的

class Job {
    var addedByUser: String!

注意 addedByUser 属性是一个字符串,因此 userVar 是一个字符串。

但是,您将它传递给需要用户类而不是字符串的函数。

func showChatControllerForUserCreator(_ user: User) {

然后引发错误

无法转换“字符串”类型的值?到预期的参数类型“用户”

修复它的方法是确定用户是字符串还是其他东西。它很可能是您创建的 UserClass

class UserClass {
   var uid = ""
   var user_name = ""
}

同时您需要将用户存储在用户节点中

users
  uid_0
    user_name = "Henry"
  uid_1
    user_name = "Bud"

并在您的 Jobs 类中,使用其 uid 存储对用户的引用。

这可能会变得相当冗长,但下一步是,在您加载作业之后,然后从它的 uid 加载用户。JobClass 将是

class Job {
    var addedByUid: String! //this will be the users Firebase uid
    etc etc

推荐阅读