我现在创建了一个只有 1 个房间、私人消息、审核和一切的聊天,一切都很好!当我测试聊天时,我意识到每次在聊天中输入的所有消息都已保存,如果你有很多人使用聊天,它会很快在你的 Firebase 中占用相当多的空间。
为了给你一个我正在寻找的例子,让我向你展示我如何处理私人消息:
当 John 向 Bob 发送私人消息时,该消息将同时添加到 John 和 Bobs 的私人消息列表中,如下所示:
/private/John <-- Message appended here
/private/Bob <-- Message appended here
这是一个火力基地如何在聊天中显示 2 条消息和 2 条私人消息的示例:
{
"chat" : {
"516993ddeea4f" : {
"string" : "Some message here",
"time" : "Sat 13th - 18:20:29",
"username" : "test",
},
"516993e241d1c" : {
"string" : "another message here",
"time" : "Sat 13th - 18:20:34",
"username" : "Test2",
}
},
"private" : {
"test" : {
"516993f1dff57" : {
"string" : "Test PM reply!",
"time" : "Sat 13th - 18:20:49",
"username" : "Test2",
},
"516993eb4ec59" : {
"string" : "Test private message!",
"time" : "Sat 13th - 18:20:43",
"username" : "test",
}
},
"Test2" : {
"516993f26dbe4" : {
"string" : "Test PM reply!",
"time" : "Sat 13th - 18:20:50",
"username" : "Test2",
},
"516993eab8a55" : {
"string" : "Test private message!",
"time" : "Sat 13th - 18:20:42",
"username" : "test",
}
}
}
}
反过来也是如此。现在,如果 Bob 在哪里断开连接,Bob 的私人消息列表将被删除,但 John 仍然能够看到他与 Bob 的对话,因为他获得了列表中所有消息的副本。如果 John 在 Bob 之后断开连接,Firebase 将被清理,他们的对话将不再存储。
有没有办法通过常规聊天来实现这样的目标?向所有使用聊天的用户推送消息似乎不是一个好的解决方案(?)。或者是否有可能以某种方式使 Firebase 仅保留最新的 100 条消息?
我希望这是有道理的!
亲切的问候
附言。非常感谢 Firebase 团队迄今为止提供的所有帮助,我非常感谢。