Ios 使用Firebase按对话分组聊天
我想使用Firebase通过对话进行分组聊天 我有下表:Ios 使用Firebase按对话分组聊天,ios,firebase,Ios,Firebase,我想使用Firebase通过对话进行分组聊天 我有下表: Chat - id - from - to - message - date 我想使用Firebase实现以下SQL查询: 从聊天室中选择*id='XX'按日期排序 按id从聊天组中选择*按日期排序 我如何使用Firebase进行此操作 我认为要做到1,我可以做到: var chatMessagesRef=new Firebase'MY.firebaseio.com/chat_messages/chat_id'; chatMessage
Chat
- id
- from
- to
- message
- date
我想使用Firebase实现以下SQL查询:
从聊天室中选择*id='XX'按日期排序
按id从聊天组中选择*按日期排序
我如何使用Firebase进行此操作
我认为要做到1,我可以做到:
var chatMessagesRef=new Firebase'MY.firebaseio.com/chat_messages/chat_id';
chatMessagesRef.on'child_added',functionsnap{
console.log snap.val;
};
但是我怎么能做到呢?此外,我还可以做1的日期排序?< P>聊天,将其组织成单独的房间或聊天会话,考虑修改您的结构如下:
/chat_messages/<room-id>/<message-id>/<message-data>
var chatMessagesRef = new Firebase('<YOUR-FIREBASE>.firebaseio.com/chat_messages');
function sendMessage(roomId, message) {
chatMessagesRef.child(roomId).push(message);
}
Firebase基本上有两种查询数据的方法:按路径和按优先级。有关更多信息,请参阅。Firebase推送ID会自动生成,以便按时间顺序排序,因此您可以使用限制查询获取任何对话的n条最新消息,例如:
chatMessagesRef.child(roomId).limit(20).on('child_added', function(snapshot) { ... });
或者,通过删除上述语句中的限制查询,您可以获取会话的所有消息,并按时间顺序自动排序
如果您还没有,请查看Firebase的官方开源聊天客户端,它包括一个完整的JavaScript客户端、数据结构和聊天安全规则。您将如何生成发送人和接收人都可以访问的roomId?@CyrilIvarGarcia I将生成一个新的,唯一的Firebase“推送”id“自动”生成id,然后将可用房间id列表存储在另一个位置,如“/rooms”。该列表中的ID可能对发送者和接收者都是公共的/可访问的。我不知道这是否有帮助,但我有一个git存储库来说明我是如何创建消息传递功能的。它不会马上起作用,但也许会给你一个主意。