一些想法;其中一个你已经提到“不”,但希望包括它的完整性:
all_messages
message_0
message: blah blah
timestamp: the timestamp
message_1
message: blah blah
timestamp: the timestamp
message_2
message: blah blah
timestamp: the timestamp
如果所有客户端都观察all_messages节点时,将增加新的消息的任何时间,客户端将得到通知,并可以查询通过时间戳得到最后三条消息。很简单的解决方案
另一个想法是有一个节点只保留最后三个消息的引用,从而减少开销和排序。
all_messages
message_45
message: blah blah
message_50
message: blah blah
message_51
message: blah blah
last_three_messages
last_message_0: message_45
last_message_1: message_50
last_message_2: message_51
当客户端将消息写入到all_messages节点,写在last_three_messages节点对它的引用和洗牌旧的消息向下。
这样,客户端就可以观察last_three_messages节点。
需要一点客户端逻辑来处理将最新消息推送到last_message_0插槽,然后将其他消息洗掉,但只需要几行代码,而且开销很小。
来源
2016-02-13 14:48:04
Jay
这实质上就是我想要的云代码而不是客户端 – rex
Firebase不提供这种服务器端逻辑。然而,这是一个非常低的带宽,可以轻松添加到客户端的最小代码选项。 – Jay