User
類別的執行個體代表使用者。使用者執行個體是獨一無二且可比較的。如果兩個例項相等,則代表同一位使用者。
應用程式可以呼叫
users.get_current_user()
函式,藉此存取當前使用者的 User 執行個體。
無論應用程式使用哪種驗證選項,您都可以使用
users.get_current_user()
函式。
另外可以從電子郵件地址建構 User 執行個體:
user = users.User("Albert.Johnson@example.com")
或者,如果您有 federated_identity,可以使用它建立 User 執行個體:
user = users.User(federated_identity="http://example.com/id/ajohnson")
如果使用未對應至有效 Google 帳戶的電子郵件地址呼叫 User 建構函式 ,系統還是會建立物件,但該物件無法對應至確切的 Google 帳戶。即使有人在物件儲存後,使用指定電子郵件地址建立 Google 帳戶,也會發生這種情況。如果建立 User 值時使用的電子郵件地址不代表 Google 帳戶,該值就永遠不會與代表實際使用者的 User 值相符。
在開發網頁伺服器下執行時,儲存在 (模擬) Datastore 中的所有 User 物件都會假設代表有效的 Google 帳戶。
有效使用者的 User 物件可以為使用者提供專屬的識別碼值,即便使用者變更電子郵件地址,識別碼仍會維持不變。
user_id()
方法會傳回這個 ID,也就是
str
值。
無論應用程式採用何種驗證方式,User 物件的格式均會相同。
將使用者值與 Datastore 搭配使用
使用者 ID 不會變動,因此可用於鍵名或做為字串屬性。因此,使用使用者值時,您會想儲存使用者 ID (或許還有上次看到的郵件地址,以便透過郵件與使用者通訊)。以下範例說明如何比較目前使用者與使用者 ID:
強烈建議您不要儲存 UserProperty,因為這個項目含有電子郵件地址和使用者的唯一 ID。如果使用者變更電子郵件地址,但您還是使用先前儲存的 User 來比對新的 User 值,兩者將無法配對。請考慮改用「User 使用者 ID 值」做為該使用者的穩定專屬 ID。