• 获取用户信息
    • SDK 1.1.3 及以上版本
      • 获取当前用户信息
      • 获取指定用户信息
      • 更新当前用户信息
      • 查询,获取用户列表
      • 排序
      • 分页
    • SDK 1.1.3 以下版本
      • 获取当前用户信息
      • 获取指定用户信息

    获取用户信息

    {% tabs first=”SDK 1.1.3 及以上版本”, second=”SDK 1.1.3 以下版本” %}

    {% content “first” %}

    SDK 1.1.3 及以上版本

    let MyUser = new wx.BaaS.User()

    获取当前用户信息

    wx.BaaS.login 方法会返回完成登录后的当前用户信息,同时,我们也给出 wx.BaaS.storage.get('userinfo') 获取存储在 storage 的当前用户信息(该方式目前暂不支持获取自定义字段)。

    如果用户授权登录过,该方法将返回以下字段:

    参数 类型 说明
    avatarUrl String 用户头像
    city String 用户所在城市
    country String 用户所在国家
    gender String 用户的性别,值为 1 时是男性,值为 2 时是女性,值为 0 时是未知
    id String 用户在用户表中的 ID
    language String 用户的语言,简体中文为 zh_CN
    nickname String 用户昵称
    openid String 用户唯一标识,由微信生成
    province String 用户所在省份
    unionid String 用户在开放平台的唯一标识符,由微信生成

    微信目前对小程序获取用户信息有两个小时的缓存设定,因此,如果一个用户修改了个人信息如头像、昵称等,需两个小时才能重新授权拿到最新的信息。
    如果用户未进行授权登录,将返回空。

    此时,可通过 wx.BaaS.storage.get('uid') 获取 uid (用户 id), wx.BaaS.storage.get('openid') 获取 openid, wx.BaaS.storage.get('unionid') 获取 unionid。

    获取指定用户信息

    MyUser.get(userID)

    参数说明

    参数 类型 必填 说明
    userID Number 用户 ID

    返回字段说明

    当查询的用户为非当前用户时:

    参数 类型 说明
    avatar String 用户头像
    id Number 用户 ID
    nickname String 用户昵称

    当查询的用户为当前用户时:

    参数 类型 说明
    avatar String 用户头像
    city String 用户所在城市
    country String 用户所在国家
    gender Number 用户的性别,值为 1 时是男性,值为 2 时是女性,值为 0 时是未知
    id Number 用户 ID
    language String 用户的语言,简体中文为 zh_CN
    nickname String 用户昵称
    openid String 用户唯一标识,由微信提供
    province String 用户所在省份

    info
    如果有自定义字段,则一并返回(以上两种情况皆是如此)。

    请求示例

    1. let MyUser = new wx.BaaS.User()
    2. let userID = 36395395
    3. MyUser.get(userID).then(res => {
    4. // success
    5. }, err => {
    6. // err
    7. })

    返回示例

    非当前用户:

    1. {
    2. avatar: "https://media.ifanrusercontent.com/media/tavatar/9a/1d/9a1db7592d6a325a845548f2fecbfb4516e138d0.jpg",
    3. id: 36395394,
    4. nickname: "hip hop man",
    5. }

    当前用户:

    1. {
    2. avatar: "https://media.ifanrusercontent.com/media/tavatar/9a/1d/9a1db7592d6a325a845548f2fecbfb4516e138d0.jpg",
    3. city: "Guangzhou",
    4. country: "China",
    5. gender: 1,
    6. id: 36395394,
    7. language: "en",
    8. nickname: "hip hop man",
    9. openid: "oXUfx0HKez4qLqgX-XSwLCpiBYS9",
    10. province: "Guangdong"
    11. }

    更新当前用户信息

    更新用户信息与数据表更新数据项方法基本一致。这里只允许更新当前用户的信息,并且只支持对 _userprofile 表中自定义的字段进行更新。

    请求示例

    1. let MyUser = new wx.BaaS.User()
    2. let currentUser = MyUser.getCurrentUserWithoutData()
    3. // age 为自定义字段
    4. currentUser.set('age', 30).update().then(res => {
    5. // success
    6. }, err => {
    7. // err
    8. })

    查询,获取用户列表

    用户查询与数据表查询方法一致

    请求示例

    1. let MyUser = new wx.BaaS.User()
    2. // 查找所有用户
    3. MyUser.find()
    4. // 查询 nickname 中包含 like 的用户
    5. let query = new wx.BaaS.Query()
    6. query.contains('nickname', 'like')
    7. MyUser.setQuery(query).find().then(res => {
    8. // success
    9. }, err => {
    10. // err
    11. })

    排序

    用户查询排序与数据表排序方法一致,不包含在返回数据里的字段不支持排序,如 created_at。

    请求示例

    1. let MyUser = new wx.BaaS.User()
    2. MyUser.orderBy('-nickname').find().then()

    分页

    用户查询分页与数据表分页方法一致。

    请求示例

    1. let MyUser = new wx.BaaS.User()
    2. MyUser.limit(5).offset(10).find().then()

    {% content “second” %}

    SDK 1.1.3 以下版本

    获取当前用户信息

    wx.BaaS.login 方法会返回完成登录后的当前用户信息,同时,我们也给出 wx.BaaS.storage.get('userinfo') 获取存储在 storage 的当前用户信息。

    如果用户授权登录过,该方法将返回以下字段:

    参数 类型 说明
    avatarUrl String 用户头像
    city String 用户所在城市
    country String 用户所在国家
    gender String 用户的性别,值为 1 时是男性,值为 2 时是女性,值为 0 时是未知
    id String 用户在用户表中的 ID,SDK v1.1.0 及以上版本才会返回
    language String 用户的语言,简体中文为 zh_CN
    nickname String 用户昵称
    openid String 用户唯一标识,由微信提供,SDK v1.1.0 及以上版本才会返回
    province String 用户所在省份
    unionid String 用户在开放平台的唯一标识符,由微信提供,SDK v1.1.0 及以上版本才会返回

    微信目前对小程序获取用户信息有两个小时的缓存设定,因此,如果一个用户修改了个人信息如头像、昵称等,需两个小时才能重新授权拿到最新的信息。
    如果用户未进行授权登录,将返回空。

    此时,可通过 wx.BaaS.storage.get('uid') 获取 uid (用户 id), wx.BaaS.storage.get('openid') 获取 openid, wx.BaaS.storage.get('unionid') 获取 unionid。

    danger
    如果用户已在 SDK v1.1.0 之前版本完成了登录,wx.BaaS.storage.get('userinfo') 将不返回 idopenidunionid 三个字段,请配合使用 wx.BaaS.storage.get('uid') 以兼容;或者让用户重新登录一次即可。

    获取指定用户信息

    wx.BaaS.getUserInfo(OBJECT)

    OBJECT 参数说明

    参数 类型 必填 说明
    userID Number 用户 ID
    user_id__in String 多个用户 ID,用逗号分隔

    返回字段说明
    当查询的用户为非当前用户时:

    参数 类型 说明
    avatar String 用户头像
    id Number 用户 ID
    nickname String 用户昵称

    出于安全性考虑,该接口目前只开放了 user id、nickname、avatar 三个字段。如需展示当前用户的完整信息,请参照上方 “获取当前用户信息”。

    请求示例

    1. // 获取 userID 为 1 的用户信息(单个获取)
    2. wx.BaaS.getUserInfo({
    3. userID: 1
    4. }).then(res => {
    5. // success
    6. }, err => {
    7. // err
    8. })
    1. // 获取 userID 为 1、2、3 的用户信息(多个获取)
    2. wx.BaaS.getUserInfo({
    3. user_id__in: '1,2,3'
    4. }).then(res => {
    5. // success
    6. }, err => {
    7. // err
    8. })

    info
    userIDuser_id__in 参数必选一

    {% endtabs %}