updateUserInfo method

Future<EMUserInfo> updateUserInfo(
  1. {String? nickname,
  2. String? avatarUrl,
  3. String? mail,
  4. String? phone,
  5. int? gender,
  6. String? sign,
  7. String? birth,
  8. String? ext}
)

修改当前用户的属性信息。

Param nickname 用户昵称。该昵称与推送设置中的昵称设置不同,我们建议这两种昵称的设置保持一致。设置推送昵称详见 EMPushManager.updatePushNickname

Param avatarUrl 用户头像。

Param mail 用户邮箱。

Param phone 用户手机号。

Param gender 用户性别。

  • 0: (默认) 未知;
  • 1: 男;
  • 2: 女.

Param sign 用户签名。

Param birth 用户的生日。

Param ext 用户的自定义属性字段。该字段可为空,或设置为自定义扩展信息,封装为 JSON 字符串。

Return 用户属性信息。

Throws 如果有方法调用的异常会在这里抛出,可以看到具体错误原因。请参见 EMError

Implementation

Future<EMUserInfo> updateUserInfo({
  String? nickname,
  String? avatarUrl,
  String? mail,
  String? phone,
  int? gender,
  String? sign,
  String? birth,
  String? ext,
}) async {
  Map req = {};
  req.putIfNotNull("nickName", nickname);
  req.putIfNotNull("avatarUrl", avatarUrl);
  req.putIfNotNull("mail", mail);
  req.putIfNotNull("phone", phone);
  req.putIfNotNull("gender", gender);
  req.putIfNotNull("sign", sign);
  req.putIfNotNull("birth", birth);
  req.putIfNotNull("ext", ext);

  try {
    Map result =
        await _channel.invokeMethod(ChatMethodKeys.updateOwnUserInfo, req);
    EMError.hasErrorFromResult(result);
    EMUserInfo info =
        EMUserInfo.fromJson(result[ChatMethodKeys.updateOwnUserInfo]);
    _effectiveUserInfoMap[info.userId] = info;
    return info;
  } on EMError catch (e) {
    throw e;
  }
}