检索公司或项目中的用户列表,支持过滤和分页。


列出用户

Blue 提供多种查询,以在不同范围内列出用户 - 公司范围、项目特定或单个用户查找。这些查询支持分页、过滤和排序,以有效管理大型用户基础。

基本示例 - 公司用户

列出公司中的所有用户:

query ListCompanyUsers {
  companyUserList(companyId: "acme-corp") {
    users {
      id
      email
      fullName
      jobTitle
      lastActiveAt
    }
    pageInfo {
      totalItems
      hasNextPage
    }
  }
}

高级示例 - 过滤的项目用户

列出项目用户,支持搜索和分页:

query ListProjectUsers {
  projectUserList(
    projectId: "web-redesign"
    search: "engineer"
    first: 20
    orderBy: lastActiveAt_DESC
  ) {
    edges {
      node {
        id
        email
        fullName
        accessLevel
        customRole {
          id
          name
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

可用查询

companyUserList

列出公司中的所有用户,支持可选过滤。

输入参数

参数 类型 必需 描述
companyId String! ✅ 是 公司 ID 或别名
notInProjectId String 排除已在此项目中的用户
search String 按名称或电子邮件搜索
first Int 返回的结果数量(前向分页)
after String 前向分页的游标
last Int 返回的结果数量(后向分页)
before String 后向分页的游标
skip Int 跳过的结果数量
orderBy UserOrderByInput 排序顺序(见下文)

projectUserList

列出特定项目中的所有用户。

输入参数

参数 类型 必需 描述
projectId String! ✅ 是 项目 ID 或别名
search String 按名称或电子邮件搜索
first Int 结果数量(最大:200)
after String 分页游标
orderBy UserOrderByInput 排序顺序

user

通过 ID 检索单个用户。

输入参数

参数 类型 必需 描述
id String! ✅ 是 用户 ID

排序选项

UserOrderByInput 值

描述
createdAt_ASC 按注册日期排序(最早的在前)
createdAt_DESC 按注册日期排序(最新的在前)
lastActiveAt_ASC 按最后活动排序(最早的在前)
lastActiveAt_DESC 按最后活动排序(最新的在前)
firstName_ASC 按名字排序(A-Z)
firstName_DESC 按名字排序(Z-A)
lastName_ASC 按姓氏排序(A-Z)
lastName_DESC 按姓氏排序(Z-A)
email_ASC 按电子邮件地址排序(A-Z)
email_DESC 按电子邮件地址排序(Z-A)
username_ASC 按用户名排序(A-Z)
username_DESC 按用户名排序(Z-A)
jobTitle_ASC 按职位名称排序(A-Z)
jobTitle_DESC 按职位名称排序(Z-A)

响应字段

用户对象

字段 类型 描述
id String! 唯一用户标识符
uid String! Firebase 认证 UID
username String! 用户选择的用户名
email String! 电子邮件地址(仅对拥有者/管理员可见)
firstName String 名字
lastName String 姓氏
fullName String 名字和姓氏的组合
jobTitle String 职业头衔
phoneNumber String 联系电话
dateOfBirth DateTime 出生日期
isEmailVerified Boolean! 电子邮件验证状态
lastActiveAt DateTime 最后活动时间戳
createdAt DateTime! 账户创建日期
updatedAt DateTime! 最后个人资料更新
isOnline Boolean! 当前在线状态
timezone String 用户的时区
locale String 语言偏好
theme JSON UI 主题偏好
image Image 个人资料图片对象

项目用户附加字段

列出项目用户时,提供附加字段:

字段 类型 描述
accessLevel UserAccessLevel! 用户在项目中的角色
customRole ProjectUserRole 自定义角色详细信息(如适用)
joinedAt DateTime! 用户加入项目的时间

分页信息

字段 类型 描述
totalItems Int! 用户总数
totalPages Int 总页数(用于偏移分页)
page Int 当前页码
perPage Int 每页项目数
hasNextPage Boolean! 还有更多结果可用
hasPreviousPage Boolean! 之前的结果可用
startCursor String 第一个项目游标
endCursor String 最后一个项目游标

所需权限

查询 所需权限
companyUserList Any authenticated user in the company
projectUserList Any project member (including VIEW_ONLY)
user Any authenticated user

错误响应

公司未找到

{
  "errors": [{
    "message": "Company not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

项目未找到

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

未授权访问

{
  "errors": [{
    "message": "You don't have access to this resource",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

重要说明

  • 性能:对于大型用户列表使用分页(每个请求最多 200 个用户)
  • 搜索:在名字、姓氏和电子邮件字段中搜索
  • 电子邮件隐私:电子邮件地址仅对拥有者或管理员访问级别的用户可见
  • 在线状态isOnline 通过 WebSocket 连接实时更新
  • 个人资料图片:使用 image.variants 字段获取不同尺寸
  • 过滤:在构建用户选择界面时,notInProjectId 参数非常有用
  • 访问级别:项目用户列表包含公司列表中不可用的角色信息

相关操作

AI助手

响应是通过人工智能生成的,可能包含错误。

我能帮您什么?

随时问我关于 Blue 或本文档的任何问题。

输入发送 • Shift+Enter 换行 • ⌘I 打开