如果您是使用未對應至有效 Google 帳戶的電子郵件地址來呼叫 User::__construct(),儘管系統還是會建立物件,但該物件無法對應至確切的 Google 帳戶。即使在物件儲存後,使用者以指定的電子郵件地址建立了 Google 帳戶,這個物件依舊無法對應實際帳戶。建立 User 值時,如果這個值的電子郵件地址不代表「Google 帳戶」,則該值將永遠無法與代表實際使用者的 User 值配對。
有效使用者的 User 物件可以為使用者提供專屬的識別碼值,即便使用者變更電子郵件地址,識別碼仍會維持不變。getUserId() 方法會傳回這個 ID,也就是 string 值。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-04 (世界標準時間)。"],[[["\u003cp\u003eThe \u003ccode\u003eUser\u003c/code\u003e class represents a unique user, and two equal instances signify the same user.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eUserService::getCurrentUser()\u003c/code\u003e retrieves the \u003ccode\u003eUser\u003c/code\u003e instance for the current user, regardless of the authentication method.\u003c/p\u003e\n"],["\u003cp\u003eA \u003ccode\u003eUser\u003c/code\u003e instance can be created from an email address, but it may not correspond to a valid Google account.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egetUserId()\u003c/code\u003e method of a \u003ccode\u003eUser\u003c/code\u003e object provides a unique ID that remains consistent even if the user's email changes.\u003c/p\u003e\n"],["\u003cp\u003eThis API is only for first-generation runtimes, and a migration guide is available for updates to PHP 7/8 runtimes.\u003c/p\u003e\n"]]],[],null,["# User Objects\n\nAn instance of the [User](/appengine/docs/legacy/standard/php/refdocs/classes/google.appengine.api.users.User) class represents a user. User instances are unique and comparable. If two instances are equal, then they represent the same user.\n| This page describes how to use the legacy bundled services and APIs. This API can only run in first-generation runtimes in the App Engine standard environment. If you are updating to the App Engine PHP 7/8 runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/php-differences) to learn about your migration options for legacy bundled services.\n\nThe application can access the User instance for the current user by calling the [`UserService::getCurrentUser()`](/appengine/docs/legacy/standard/php/refdocs/classes/google.appengine.api.users.UserService#method_getCurrentUser) function. \n\n use google\\appengine\\api\\users\\UserService;\n\n $user = UserService::getCurrentUser();\n\n if (isset($user)) {\n return sprintf('Welcome, %s! (\u003ca href=\"%s\"\u003esign out\u003c/a\u003e)',\n $user-\u003egetNickname(),\n UserService::createLogoutUrl('/'));\n } else {\n return sprintf('\u003ca href=\"%s\"\u003eSign in or register\u003c/a\u003e',\n UserService::createLoginUrl('/'));\n }\n\nYou can use the `UserService::getCurrentUser()` function no matter which authentication option your app uses.\n\nA User instance can be also constructed from an email address: \n\n $user = new User('Albert.Johnson@example.com');\n\nIf the [`User::__construct()`](/appengine/docs/legacy/standard/php/refdocs/classes/google.appengine.api.users.User#method___construct) is called with an email address that does not correspond with a valid Google account, the object will be created but it will not correspond with a real Google account. This will be the case even if someone creates a Google account with the given email address after the object is stored. A User value with an email address that does not represent a Google account at the time it is created will never match a User value that represents a real user.\n\nThe User object for a valid user can provide a unique ID value for the user that stays the same even if the user changes her email address. The [`getUserId()`](/appengine/docs/legacy/standard/php/refdocs/classes/google.appengine.api.users.User#method_getUserId) method returns this ID, a `string` value.\n\nThe User object has the same form no matter which method of authentication your app uses."]]