---
title: "在 Android SDK 中识别用户"
description: "在 Adapty 中识别用户以改善个性化订阅体验（Android）。"
---

Adapty 会为每个用户创建一个内部用户画像 ID。但是，如果您有自己的身份验证系统，则应设置您自己的 Customer User ID。您可以在 [用户画像](profiles-crm) 部分通过 Customer User ID 查找用户，并在 [服务端 API](getting-started-with-server-side-api) 中使用它，该 ID 将被发送到所有集成。

### 在配置时设置 Customer User ID \{#setting-customer-user-id-on-configuration\}

如果您在配置时已有用户 ID，只需将其作为 `customerUserId` 参数传递给 `.activate()` 方法：

```kotlin showLineNumbers
Adapty.activate(applicationContext, "PUBLIC_SDK_KEY", customerUserId = "YOUR_USER_ID")
```

:::tip

想了解 Adapty SDK 如何集成到移动应用中的真实示例？请查看我们的[示例应用](sample-apps)，其中展示了完整的配置过程，包括显示付费墙、完成购买以及其他基本功能。

:::

### 在配置后设置 Customer User ID \{#setting-customer-user-id-after-configuration\}

如果您在 SDK 配置时没有用户 ID，可以在之后的任意时刻使用 `.identify()` 方法进行设置。使用此方法最常见的场景是在注册或授权之后，即用户从匿名用户切换为已认证用户时。

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
Adapty.identify("YOUR_USER_ID") { error ->
    if (error == null) {
        // successful identify
    }
}
```

</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
Adapty.identify("YOUR_USER_ID", error -> {
    if (error == null) {
        // successful identify
    }
});
```
</TabItem>

</Tabs>

请求参数：

- **Customer User ID**（必填）：字符串类型的用户标识符。

:::warning
重新提交重要用户数据

在某些情况下，例如用户再次登录其账户时，Adapty 的服务器可能已经拥有该用户的信息。在这些情况下，Adapty SDK 将自动切换到新用户。如果您向匿名用户传递了任何数据，例如自定义属性或来自第三方网络的归因数据，您应该为已识别的用户重新提交这些数据。

同样重要的是，在识别用户后，您应该重新请求所有付费墙和产品，因为新用户的数据可能有所不同。
:::

### 登出与登录 \{#logging-out-and-logging-in\}

您可以随时通过调用 `.logout()` 方法来登出用户：

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
Adapty.logout { error ->
    if (error == null) {
        // successful logout
    }
}
```

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
Adapty.logout(error -> {
    if (error == null) {
        // successful logout
    }
});
```
</TabItem>
</Tabs>

之后，您可以使用 `.identify()` 方法让用户重新登录。