Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。

详情请查看

实现代码:

//服务器同步数据
Future<bool> syncFirst(String account, String packageName) async {Response result = await HttpUtils.getInstance().syncFirst(account, packageName);LogUtils.d("syncFirst返回数据:${result.toString()}");final responseResult = jsonDecode(result.toString());final baseResult = BaseResult.fromJson(responseResult);//LogUtils.d("syncFirst返回baseResult数据:${baseResult}");final syncFirstJson = jsonDecode(baseResult.data.toString());SyncFirstBean syncFirstBean = SyncFirstBean.fromJson(syncFirstJson);List<UserBean> syncUser = syncFirstBean.syncUser;List<ContactsBean> syncContacts = syncFirstBean.syncContacts;List<ChatBean> syncChat = syncFirstBean.syncChat;List<GroupBean> syncGroup = syncFirstBean.syncGroup;List<GroupUserBean> syncGroupUser = syncFirstBean.syncGroupUser;processSyncUser(syncUser);processSyncContact(syncContacts);processSyncChat(syncChat);processSyncGroup(syncGroup);processSyncGroupUser(syncGroupUser);return true;
}
//处理登录账户
void processSyncUser(List<UserBean> syncUser) async{List<UserBean> resultUserList = [];for(int i = 0; i < syncUser.length; i++){UserBean userBean = syncUser[i];//LogUtils.d("第一次同步用户:${userBean.account}, ${userBean.nickName} , ${userBean.address},  ${userBean.note}");UserBean? localUserBean = await userDao?.findUserByAccount(userBean.account!);if(localUserBean == null){resultUserList.add(userBean);}}userDao?.insertUserList(resultUserList);
}//处理联系人
void processSyncContact(List<ContactsBean> syncContacts) async{/*syncContacts.forEach((contactsBean) {LogUtils.d("第一次同步联系人:${contactsBean.fromAccount}, ${contactsBean.toAccount} , ${contactsBean.type}");});*/List<ContactsBean> resultContactsList = [];for(int i = 0; i < syncContacts.length; i++){ContactsBean contactsBean = syncContacts[i];ContactsBean? localContactsBean = await contactsDao?.findContactByFromOrToAccount(contactsBean.fromAccount??"", contactsBean.toAccount??"");//如果已经存在联系人, 不需要重复插入if(localContactsBean == null){resultContactsList.add(contactsBean);}}contactsDao?.insertContactList(resultContactsList);
}//处理聊天信息
void processSyncChat(List<ChatBean> syncChat){/*syncChat.forEach((chatBean) {LogUtils.d("第一次同步聊天信息:${chatBean.fromAccount}, ${chatBean.toAccount} ${chatBean.content}");});*/ChatDao? chatDao = DBUtils.getInstance().getDatabase()?.chatDao;chatDao?.insertChatList(syncChat);
}//处理群名信息
void processSyncGroup(List<GroupBean> syncGroup){GroupRepository.getInstance().insertGroupList(syncGroup);
}//处理群成员信息
void processSyncGroupUser(List<GroupUserBean> syncGroupUser){GroupUserRepository.getInstance().insertGroupUserList(syncGroupUser);
}

Flutter高仿微信-第59篇-同步数据相关推荐

  1. Flutter高仿微信-第47篇-群聊-语音

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...

  2. Flutter高仿微信-第36篇-单聊-语音通话

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 目前市 ...

  3. Flutter高仿微信-第31篇-单聊-表情

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  4. Flutter高仿微信-第46篇-群聊-表情

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  5. Flutter高仿微信-第48篇-群聊-图片

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...

  6. Flutter高仿微信-第32篇-单聊-语音

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...

  7. Flutter高仿微信-第26篇-新的朋友

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现代 ...

  8. Flutter高仿微信-第57篇-添加好友

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...

  9. Flutter高仿微信-第51篇-群聊-修改群名

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...

最新文章

  1. VMware调试.【转】VMware+Windgb+Win7 内核驱动调试
  2. 成功解决graphviz\backend.py, line 162, in pipe raise ExecutableNotFound(args) graphviz.backend.Executab
  3. jquery easyui dataGrid动态改变排序字段名
  4. XCode发布IPA离线安装包步骤
  5. 2.2.1.处理机调度的概念,层次
  6. 代码写累了来这看看,笑笑
  7. java coherence_Coherence配置默认覆盖路径
  8. 为什么使用接口编程{转载}
  9. linux下高可用性群集和负载均衡群集的实现
  10. (转)EBWin格式辞典的安装使用
  11. Activex控件是什么?
  12. 全网最细最全Appium自动化测试 iOS入门教程,App自动化测试教程,精细整理
  13. 竞品分析 | 荔枝VS喜马拉雅FM:有声音频APP的发展与社交
  14. vue 怎么解析xml
  15. 小白新建C语言程序(VS2019创建C语言编程环境方法详解)
  16. python 处理 图像和视频
  17. 一篇五分生信临床模型预测文章代码复现——Figure1 差异表达基因及预后基因筛选——火山图,Venn图,热图绘制(二)
  18. java 人脸检测 人脸抓拍
  19. 中文字号和磅数的联系
  20. 第六章 Linux实际操作——实用指令

热门文章

  1. 用html制作王者荣耀的界面,《王者荣耀》操作设置详解
  2. android荣耀不弹出获取权限提醒,荣耀手机怎么设置锁屏消息提示?附不提示的解决方法...
  3. 二维码相机遮罩层快速实现
  4. 申请基于GPT-4.0模型的NewBing秒审核
  5. win10蓝牙链接上的标准串行com口无法删除
  6. C/C++输入未知组数据的方法,多行输入介绍
  7. 希望计算机专业同学都知道这些老师
  8. 【pytorch】BN层计算
  9. 记一次稀里糊涂的面试
  10. 肯定得想办法牵线搭桥