2014-05-07 34 views
4

我已經創建表user_ID的(基於電子郵件ID唯一SNO)和GCM_id每個用戶。還有的是2個問題我也即,2個用戶使用相同的設備和相同的應用程序,但不同的登錄ID - 他們有不同的gcm註冊ID?

  1. 可以在2個用戶提供不同的EMAIL_ID登錄來自同一設備和收到gcm wrt那個用戶?

  2. 如何在我的數據庫中創建和維護列。基本上,如果用戶在不同設備(Mobile,Tab-Android)上安裝了應用程序,但電子郵件ID相同,則需要哪些列才能使gcm工作?

我指的是Android Hive鏈接,但有人說它的gcm(2012)已被棄用。 http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

摘要: 需要採取哪些步驟才能使最新的GCM在多個設備上正常工作? 謝謝。 我真的很感激任何幫助。感謝提前。

+0

REGId取決於設備上的谷歌帳戶,而不是用於登錄到你的應用程序的電子郵件,所以我認爲這兩個用戶都會收到1個用戶的通知,那不是你想要的 – Yazan

+0

那麼如何分離用戶從他們的登錄ID像多個設備上的Gmail? – jason

+0

您可能會操縱PAY_LOAD,將用戶的電子郵件作爲數據的一部分,因此您可以顯示或處理電子郵件地址等於當前用戶登錄的通知...也許?! – Yazan

回答

5

您在給定設備上的應用程序將有一個註冊ID。您想要將該註冊ID與當前登錄用戶的用戶ID相關聯。所以,當用戶登錄時,您應該向您的服務器發送用戶ID +註冊ID並將它們存儲在您的表中。當用戶註銷時,您應該將用戶標識發送到您的服務器,並在數據庫中清除該用戶的註冊標識。

現在,如果你想支持同一用戶的多個設備,你需要表格。用戶ID(其中用戶ID是唯一的,並且可能是主鍵)的一個表以及用於用戶ID與註冊ID(其中每個用戶可以與多個註冊ID相關聯)的關聯的另一個表。同樣,您在登錄時創建用戶ID - 註冊ID關聯,並在註銷期間刪除關聯。

+0

我是與2列device_id和reg_id相同的結構的東西,它將有一系列的設備/ regid對,因此它會發送到與regid關聯的所有設備ID。您怎麼看?此外,如果他不註銷。如何我仍然可以清除regid.My應用程序沒有註銷?任何選擇? – jason

+0

@jason如果您沒有註銷,則可以在新用戶登錄時隱式註銷以前的用戶。當新用戶登錄時,您將爲新用戶設置註冊ID並將其清除給其他用戶先前與此ID相關聯。當然,這將是一個更昂貴的數據庫操作,因爲您必須在整個表中搜索該註冊ID。最好有一個註銷操作(實際上,這仍然可以是隱含的 - 如果您的設備知道以前登錄的用戶,則在登錄操作中將新用戶與新用戶一起傳遞)。 – Eran

+0

聽起來不錯.Yup謝謝。 – jason

相關問題