我不建議刪除舊消息,而不是讓每個用戶都照顧只讀新內容。
如果您的消息數據結構正在工作,那麼您只需要爲模型添加1個屬性。每次發送消息時,都會在屬性中添加時間戳。
Here is the doc how to use the ServerValue.TIMESTAMP。
現在每個消息節點都可以按時間戳排序。
"messages": {
"chat_1": {
"push_key_usually":{
"message": "hello",
"owner": "maybe the UID or the email",
"chat_key": "chat_1",
"key": "push_key_usually",
"timestamp": 981212312
}
}
}
要完成此操作,需要讓每個用戶在加載聊天時設置自己的時間戳。這樣,您可以從數據庫中獲取該值,並使用該時間戳對您的消息進行排序。完整的順序是首先查詢值,如果它是空的,那麼是第一次,只需要使用自定義時間戳(可以爲零或當前時間減去幾分鐘)詢問每個消息或工作並設置該值。如果它不爲空,則將該值用於查詢,並在獲取它之後,再次設置時間戳。
"connections": {
"user_UID": 12312412
}
現在你可以做這樣的事情:
reference.child("messages/chat_1/push_key_usuarlly").orderByChild("timestamp").startAt(yourTimeStamp).once...
您可以存儲信息的發佈日期/時間的記錄,並只返回那些> =日期/時間用戶連接 – ptpaterson
什麼,如果有是一個連接了很長時間的設備。我想你只需要弄清楚什麼時候開始隱藏舊的東西是可以接受的。我覺得Firebase應該能夠爲你保留很多東西。 – ptpaterson
這是一個很好的觀點。恐怕設備1收到並刪除了記錄,然後設備2沒有任何東西。不確定Firebase是否同時廣播。 – handsome