swift - JSQMessagesViewController 设置收件人 firebase id

标签 swift firebase firebase-realtime-database jsqmessagesviewcontroller

我通过在 https://www.raywenderlich.com/122148/firebase-tutorial-real-time-chat 关注 raywenderlick 实现了 firebase firechat

但问题是它正在使用匿名模式。

我的应用程序获得了 2 个 firebase uid,当 User1 登录并发送消息时,我需要设置 User2 firebase uid 以便两者都可以交谈。但是,我的类实现了 JSQMessagesViewController swift 类并且只能设置 senderId 和 senderDisplayName 并且我找不到像 recipientId 这样的变量。

didPressSendButton 方法也没有任何地方可以设置收件人 firebaseid。

 override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!) {

    let itemRef = messageRef.childByAutoId()

    let messageItem = [
        "text": text,
        "senderId": senderId
    ]

    itemRef.setValue(messageItem)

    JSQSystemSoundPlayer.jsq_playMessageSentSound()

    finishSendingMessage()

    isTyping = false

}

最佳答案

您可以创建自己的消息对象,只要它符合 JSQMessageData 协议(protocol),它就可以与 Controller 一起工作。然后将您的自定义变量添加到该对象。这里有一个例子。 https://stackoverflow.com/a/38884743/5894123

关于swift - JSQMessagesViewController 设置收件人 firebase id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38812638/

相关文章:

javascript - 通过 firebase 函数替换在发送网格中不起作用

javascript - 编辑和删除 firebase

objective-c - 如何将信息从 Objective-c 的 View Controller 传递到 Swift Storyboard

ios - 刷新标记而不刷新整个谷歌地图(Swift 2.0,Xcode v 7.0.1)

node.js - 在 Cloud Functions for Firebase 中运行 Firestore 批处理

android - 使用带有 addValueEventListener 的查询

firebase - Flutter:StreamBuilder中的项目(使用firebase实时数据库)随机排序

firebase - 撤销实时数据库中的读取访问权限是否会立即断开事件监听器的连接?

swift - 快速的 UITableView

iphone - 应用程序崩溃 iPhone 5 及以下