syncUserInfo method

  1. @override
Future<void> syncUserInfo(
  1. String account
)
override

同步用户信息,调用手动登录IM的时候会自动调用 如果使用IM的自动登录功能,成功之后可以调用此方法同步用户信息

Implementation

@override
Future<void> syncUserInfo(String account) async {
  //如果是自动登录,先设置监听
  if (isAutoLogin) {
    setUserListener();
    _onLoginStatusChanged.add(NIMLoginStatus.loginStatusLogined);
    status = NIMLoginStatus.loginStatusLogined;
  }
  //1, 先从本地取
  var localUserInfoResult =
      await NimCore.instance.userService.getUserList([account]);
  if (localUserInfoResult.data != null &&
      localUserInfoResult.data?.isNotEmpty == true) {
    userInfo = localUserInfoResult.data?.first;
  } else {
    //本地取不到再从云端取
    var userResult =
        await NimCore.instance.userService.getUserListFromCloud([account]);
    if (userResult.isSuccess && userResult.data != null) {
      userInfo = userResult.data?.first;
    }
  }
  Alog.i(
      tag: 'LoginService',
      content: 'syncUserInfo result ==> ${userInfo?.toJson()}');
}