获取用户信息

let MyUser = new wx.BaaS.User()

let MyUser = new qq.BaaS.User()

let MyUser = new BaaS.User()

let MyUser = new my.BaaS.User()

let MyUser = new swan.BaaS.User()

let MyUser = new tt.BaaS.User()

let MyUser = new jd.BaaS.User()

获取指定用户信息

MyUser.get(userID)

参数说明

参数 类型 必填 说明
userID Number 用户 ID (对应 _userprofile 表中的 id 字段)

返回字段说明

内置字段的返回依赖于 _userprofile 表中该内置字段的权限设置,若字段权限勾选了 客户端不可见,则 SDK 中该字段不返回;若字段权限勾选了 仅创建者可见,则 SDK 中仅当 userID 与当前用户 ID 相同时返回该字段。_userprofile 表中的内置字段包括:

参数 类型 说明
avatar String 用户头像
city String 用户所在城市
country String 用户所在国家
gender Number 用户的性别,值为 1 时是男性,值为 2 时是女性,值为 0 时是未知
id Number 用户 ID (对应 _userprofile 表中的 id 字段)
language String 用户的语言,简体中文为 zh_CN
nickname String 用户昵称
openid String 用户唯一标识,由微信提供
unionid String 同一个微信开放平台帐号下的不同应用中,用户的唯一标识,由微信提供
province String 用户所在省份
is_authorized Boolean 用户是否授权,true 为已授权,false 为未授权
_email String 用户邮箱(用于用户以邮箱 & 密码登录)
_username String 用户名(用于用户以用户名 & 密码登录)
_email_verified Boolean 用户邮箱是否已经通过验证(已验证邮箱才能找回密码)
_phone String 用户手机
_phone_verified Boolean 用户手机是否已经通过验证
_provider Object 用户在平台方的用户信息
_provider.alipay Object 支付宝平台的用户信息,见下方说明

支付宝平台的用户信息对象说明

参数 类型 说明
user_id string 支付宝小程序用户 user_id
is_student boolean 用户是否是学生
user_type string 用户类型,包括:company_account(公司账户)以及 personal_account (个人账户)
user_status boolean 用户状态,包括:registered(快速注册用户)、authenticated(已认证用户)、frozen(被冻结用户) 以及inactive(已注册,未激活用户)
verified boolean 用户是否通过实名认证,当且仅当该值为 true 时gender 值才保证准确性
avatar string 支付宝小程序用户头像
province string 支付宝小程序用户省份
city string 支付宝小程序用户市名称
nickname string 支付宝小程序用户昵称
gender string 支付宝小程序用户性别,female 为女性,male 为男性

  1. 默认情况下,上述内置字段除 idnicknameavatar 字段外,默认权限设置均为 客户端可见,且仅创建者可见id 默认均可见,nickname 以及 avatar 默认权限设置为 客户端可见,且非创建者也可见
  2. 针对该权限设置,SDK 中当查询的用户为非当前用户时,上述内置字段仅返回 idnicknameavatar 字段;当查询的用户为当前用户时,上述内置字段均会返回
  3. 若开发者需要让 SDK 中非当前用户查询时也能返回某一内置字段,则应修改 _userprofile 表中该字段权限为 非仅创建者可见
  4. 若开发者不希望 SDK 中返回某一内置字段,则应修改 _userprofile 表中该字段权限为 客户端不可见
  5. 如果有自定义字段,则自定义字段同样根据该字段本身的权限设置,判断是否在 SDK 中进行返回,判断规则同内置字段。

微信网页登录/微信公众号登录 UnionID 机制说明

应用使用微信网页登录/微信公众号登录后,当用户资料中有 unionid 返回时,知晓云会将其存储到内置字段 _provider.wechat_unionid 中。 在重新进行微信网页登录/微信公众号登录时,知晓云会优先通过 _provider.wechat_unionid 查找用户,从而实现微信网页登录/微信公众号登录之间的用户身份打通。

微信小程序暂未支持

请求示例

let MyUser = new wx.BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})
let MyUser = new qq.BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})
let MyUser = new BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})
let MyUser = new my.BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})
let MyUser = new swan.BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})
let MyUser = new tt.BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})
let MyUser = new jd.BaaS.User()
let userID = 36395395
MyUser.get(userID).then(res => {
  // success
}, err => {
  // err
})

返回示例

非当前用户:

{
  "statusCode": 200,
  "data": {
    "avatar": "https://media.ifanrusercontent.com/media/tavatar/9a/1d/9a1db7592d6a325a845548f2fecbfb4516e138d0.jpg",
    "id": 36395394,
    "nickname": "hip hop man"
  }
}

当前用户:

{
  "statusCode": 200,
  "data": {
      "id": 5123461461,
      "avatar": "http://cdn.ifanr.cn/ifanr/default_avatar.png",
      "nickname": "riDGldYXLHouWIYx",
      "_username": "myusername",
      "_email": "myemail@somemail.com",
      "_email_verified": false,
      "_provider": {
        "alipay": {
          "avatar": "http://tfsimg.alipay.com/images/partner/T1uIxXXbpXXXXXXXX",
          "province": "安徽省",
          "city": "安庆",
          "nick_name": "支付宝小二",
          "is_student": true,
          "user_type": "company_account",
          "user_status": "authenticated",
          "verified": true,
          "gender": "female"
        }
      }
    }
}

筛选返回字段

select 使用方法可以参考数据表 - 字段过滤小节

扩展字段

expand 使用方法可以参考数据表 - 字段扩展小节

请求示例

假设 _userprofile 表中有一个类型为 pointer 的字段,名称为 pointer_test_oder, 指向了 test_order 表

let MyUser = new wx.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new qq.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new my.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new swan.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new tt.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new jd.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_order']).get(123456).then((res) => {
// success
}, (err) => {
// err
})

请求结果

{
  "statusCode": 200,
  "data": {
    "pointer_test_order": {
      "created_at": 1538966895,
      "_table": "test_order",
      "id": "5bbac56fbd66033df7fd0aa2",
      "created_by": 61736923,
      "updated_at": 1538966895
    },
    "nickname": "ifanrx"
  }
}

let MyUser = new wx.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new qq.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new my.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new swan.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new tt.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})
let MyUser = new jd.BaaS.User()
MyUser.expand(['pointer_test_oder']).select(['nickname', 'pointer_test_oder']).find().then((res) => {
// success
}, (err) => {
// err
})

请求结果

{
  "statusCode": 200,
  "data": {
    "meta": {
      "next": null,
      "offset": 0,
      "total_count": 1,
      "limit": 20,
      "previous": null
    },
    "objects": [
      {
        "pointer_test_order": {
          "id": "5bbac56fbd66033df7fd0aa2",
          "_table": "test_order",
          "created_by": 61736923,
          "updated_at": 1538966895
        },
        "nickname": "ifanrx"
      }
    ]
  }
}

获取符合筛选条件的用户总数

MyUser.count()

SDK v3.0 新增

let MyUser = new wx.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new wx.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})
let MyUser = new qq.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new qq.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})
let MyUser = new BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})
let MyUser = new my.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new my.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})
let MyUser = new swan.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new swan.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})
let MyUser = new tt.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new tt.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})
let MyUser = new jd.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new jd.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).count().then(num => {
  // success
  console.log(num)  // 10
}, err => {
  // err
})

查询,获取用户列表

因为安全性考虑,仅支持 nickname、id 字段的查询,如需查询更多字段,可通过在云函数内编写查询逻辑云函数 node sdk 查询用户 ,然后通过小程序调用。

MyUser.find(options)

参数说明

options:

参数 类型 必填 默认 说明
withCount boolean false 是否返回 total_count

当数据条目多时,可通过不返回 total_count 提高响应速度。

SDK v2.x 无法配置是否返回 total_count。

SDK v3.x 新增了 withCount 字段来配置是否返回 total_count,默认为 false

SDK v3.x 还新增了 count 方法,用来查询列表的数量。

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

请求示例

let MyUser = new wx.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new wx.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})
let MyUser = new qq.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new qq.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})
let MyUser = new BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})
let MyUser = new my.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new my.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})
let MyUser = new swan.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new swan.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})
let MyUser = new tt.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new tt.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})
let MyUser = new jd.BaaS.User()

// 查找所有用户
MyUser.find()

// 查询 nickname 中包含 like 的用户
let query = new jd.BaaS.Query()
query.contains('nickname', 'like')
MyUser.setQuery(query).find().then(res => {
  // success
}, err => {
  // err
})

排序

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

请求示例

let MyUser = new wx.BaaS.User()

MyUser.orderBy('-nickname').find().then()
let MyUser = new qq.BaaS.User()

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

MyUser.orderBy('-nickname').find().then()
let MyUser = new my.BaaS.User()

MyUser.orderBy('-nickname').find().then()
let MyUser = new swan.BaaS.User()

MyUser.orderBy('-nickname').find().then()
let MyUser = new tt.BaaS.User()

MyUser.orderBy('-nickname').find().then()
let MyUser = new jd.BaaS.User()

MyUser.orderBy('-nickname').find().then()

分页

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

请求示例

let MyUser = new wx.BaaS.User()

MyUser.limit(5).offset(10).find().then()
let MyUser = new qq.BaaS.User()

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

MyUser.limit(5).offset(10).find().then()
let MyUser = new my.BaaS.User()

MyUser.limit(5).offset(10).find().then()
let MyUser = new swan.BaaS.User()

MyUser.limit(5).offset(10).find().then()
let MyUser = new tt.BaaS.User()

MyUser.limit(5).offset(10).find().then()
let MyUser = new jd.BaaS.User()

MyUser.limit(5).offset(10).find().then()

pointer 引用

使用 BaaS.User().getWithoutData 可以创建一个 _userprofile 指定数据行的引用。主要配合 pointer 功能使用

let user = new wx.BaaS.User().getWithoutData(123456)
let user = new qq.BaaS.User().getWithoutData(123456)
let user = new BaaS.User().getWithoutData(123456)
let user = new my.BaaS.User().getWithoutData(123456)
let user = new swan.BaaS.User().getWithoutData(123456)
let user = new tt.BaaS.User().getWithoutData(123456)
let user = new jd.BaaS.User().getWithoutData(123456)
具体使用方法请参考 数据表-添加 pointer 类型数据 小节

results matching ""

    powered by

    No results matching ""