0

我正在嘗試使用Google Cloud Messaging構建應用程序。Android gcm註冊數據庫管理

我使用谷歌gcm樣本,幾乎沒有任何修改,到目前爲止,我可以發送消息之間我的客戶端應用程序和我個人的小php服務器。 (這裏沒有代碼問題)

在樣品中,谷歌讓sendRegistrationToServer()方法(click here)用於當InstanceId設爲我寫的,但我沒有找到關於如何管理這樣的事情淨任何線索。

我的數據庫應該如何處理用戶和令牌?

(如果有人可以提供一個小數據庫結構例子,它將使我的天!)

由於tokens註冊一個應用程序或手機與users用戶(這意味着註冊活動獲取用戶名和密碼,我還沒有做到),我不想將它們混合在同一張表中,但我可能對令牌的目的有誤解。

舉例來說,我不知道爲什麼沒有人似乎保存SharedPreferences令牌......


編輯:現在我得到了整個過程:

  1. 登記活動 - >註冊您的用戶
    • 發送的電子郵件地址和安全密碼到你的服務器
  2. 連接活動 - >連接你的用戶
    • 得到一個gcm_token並將其發送到您的服務器,然後用連接信息

這看起來很簡單明瞭,現在映射它,但真的沒有當時,所以也許它可以幫助別人...

回答

1

令牌可能會改變,所以它不是存儲它有用在共享首選項中,最好調用InstanceID.getToken,以確保始終獲得正確的標記值。重要的是要知道您是否已將最新的令牌發送到您的應用程序服務器,此布爾值應存儲在共享首選項中。

你應該有延伸在其中實現onTokenRefresh處理新的令牌InstanceIDListenerService類。

您應該將應用程序生成的用戶ID映射到令牌,請注意,一個用戶可能有與之相關的許多有效令牌。您不必將令牌與用戶的用戶名和密碼一起存儲,但應該將用戶ID映射爲令牌。

如:

用戶(UID,UNAME,PWORD)

令牌(UID,token_value)

+0

我有一個InstanceIDListenerService,幾乎跟谷歌樣本一樣。感謝數據庫結構!現在我正在創建的連接/註冊,但我不明白的是,我需要一個令牌通信我的名字和密碼,但我需要一個帳戶(名和密碼)映射到與令牌。哪一個先到? –

+0

Juvi說令牌是用戶而不是設備,而是你說一個用戶可以有多個標記,這是混淆了... –

+0

你可以把令牌作爲代表一個單一設備上的應用程序的單一安裝。如果用戶將您的應用安裝在多個設備上,那麼用戶將擁有多個令牌,每個安裝一個。在生成InstanceID令牌之前,您應該讓用戶使用特定於應用程序的ID。通過這種方式,當您準備向用戶發送消息時,您會查找用戶的ID,然後將消息發送給與該用戶關聯的所有令牌。 –

1

gcm應該與用戶對象相關聯。 一旦用戶獲得他的gcm令牌,就像你想象的那樣,它的用戶令牌而不是設備令牌。

對於您的應用程序中的簡單數據庫集成,我建議您使用Parse.com及其Android入門指南。

令牌是越來越每次打開應用程序時的授權,而且可能隨時間改變 - 爲什麼沒有保存它,多數民衆贊成和重用同樣evreytime

+0

所以你的適當方式1)註冊用戶姓名,密碼2)聯營令牌作爲用戶的字段,我是對的嗎? –

+0

我現在在看parse.com,事實上我對他們的網站一無所知可能意味着它對我和我的項目來說過於複雜......也許我會稍後嘗試 –