2014-09-22 77 views
1

我正在關注Android開發站點上的客戶端GCM代碼;我碰到這樣的:發送註冊到後端

private void sendRegistrationIdToBackend() { 
    // Your implementation here. 
} 

現在,這個問題是不是落實在那裏,我知道該怎麼做httpost的發送PARAM的服務器。

我的問題是哪裏我可以在我的數據庫中發送這個嗎?

我在一個應用程序,已經擁有註冊用戶執行的GCM,所以我有一個users MySQL表。下面是我的問題:從我讀過的內容來看,RegistrationId與用戶有着獨特的關係嗎? 如果是這樣,我可以將用戶的RegistrationId放入用戶表中的新列嗎?我看到的唯一問題:如果用戶在多個設備上使用應用程序怎麼辦?所以這讓我覺得我的邏輯是錯誤的。如果它是錯誤的...

..我應該做什麼,我已經看到在演示中,並將註冊ID的自己的表 - 如果是這樣,應該放在那裏與用戶ID在相同的行,這樣一個註冊ID可以被識別給一個特定的用戶(不只是設備)?

回答

2

在用戶和註冊ID之間的關係是許多一對多:

  • 如你意識到,如果用戶具有多個設備,該用戶將與多個註冊ID相關聯。
  • 如果在單個設備上有一個用戶註銷並且另一個用戶登錄,則兩個用戶都將使用相同的註冊ID。但是,在這種情況下,您可以在將註冊ID與新用戶關聯之前取消註冊ID與舊用戶的關聯。這將簡化用戶和註冊ID之間的關係,以一對多。

鑑於這兩點,對於每個註冊ID包含一個表,用戶ID將工作。當用戶註銷時,請不要忘記從該表中刪除條目,因爲當用戶註銷特定設備時,賦予應用程序實例的註冊ID不再與該用戶關聯。

+1

好的,這是有道理的。所以我認爲一個包含user_id和reg_id的表格可以用於多設備場景。我會標記這是正確的。 – KickingLettuce 2014-09-22 19:03:52

1

這取決於你的應用程序要怎麼做:

  • 如果用戶僅使用一個設備,你可以把它在user表。
  • 如果用戶可以有多個設備,並且應該向所有人發送相同的通知,則可以爲每個用戶(一對多表)提供一個註冊ID列表。
  • 如果每個設備都有不同的通知,您應該爲設備添加一個表,並在其中添加註冊ID。