一些想法;其中一個你已經提到「不」,但希望包括它的完整性:
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