我正在完成一個由Ruby on Rails 5中開發的後端支持的移動應用程序(離子,但無關緊要)的開發,因爲這更多的是一個理論問題/問題。如何在移動應用程序後端處理讀取通知
這裏的事情是,鑑於移動應用程序中的用戶可以登錄或不能登錄(他們有一堆功能,也許有一半可以通過未登錄的用戶訪問),應該怎麼做我處理通知本身的存儲和讀取狀態?注意:有了通知,我並不是指推送通知,而是指停留在應用程序內部側邊菜單中的「消息」(我已推送了推送服務)。
這裏的主要問題是:我希望能夠跟蹤讀取的通知,以防止它們在用戶重新安裝應用程序時被標記爲未讀(想象僅僅因爲您重新安裝了50條未讀通知)。
我開始有用於存儲在後端通知如下模型:
- ID
- USER_ID
- push_notification_id(參照推送通知的ID,不相關)
- 讀:布爾
- 內容:文本
使用此模型時,我會爲每個需要通知的用戶插入一行,並使用布爾列跟蹤它是否被讀取。問題是,只有註冊用戶可以收到通知。
第二種選擇是刪除user_id引用和「讀取」屬性服務器端,並假設我總是要通知所有人,而不是某些用戶。但是現在,我需要一種方法來跟蹤讀取哪些通知。我可以在本地存儲本地存儲器中的某些ID的移動應用程序在本地執行此操作,但是如果重新安裝,這些操作將再次刪除。
我想到的第三個選項是實現第二個選項,它包含一個「expiry」列服務器端,它指示在新應用程序安裝的情況下,通知應該在默認情況下停止爲「未讀」。這是迄今爲止最好的,但我並不確信。
我知道我在這裏要求很多東西,但我只是在尋找一個很好的實現模型,因爲我一直找不到任何Google搜索,我相信這是重複的設計模式。
謝謝!
我們可能需要更多的上下文才能在這裏獲得幫助。這些通知的目的是什麼?他們是否爲用戶定製?從你的描述來看,它聽起來像是每個人都一樣,每個用戶同時出門。 – Michael
其目的是作爲推送通知的伴侶。每次向用戶發送推送通知時,服務器端都會創建一個「通知」對象,客戶端可以在側邊欄中列出相同的內容或可能擴展的內容。 至於一個用戶的定製,它最初的目的是這樣,即使它不是一個要求,如果需要它,它會很高興。 但是,主要觀點只是監視「讀取」狀態(客戶端或服務器端)的模型,因爲客戶端可能會在不登錄的情況下重新安裝。 –