Flutter高仿微信-第59篇-同步数据
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篇-同步数据相关推荐
- Flutter高仿微信-第47篇-群聊-语音
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...
- Flutter高仿微信-第36篇-单聊-语音通话
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 目前市 ...
- Flutter高仿微信-第31篇-单聊-表情
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...
- Flutter高仿微信-第46篇-群聊-表情
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...
- Flutter高仿微信-第48篇-群聊-图片
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情 ...
- Flutter高仿微信-第32篇-单聊-语音
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 详情请 ...
- Flutter高仿微信-第26篇-新的朋友
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现代 ...
- Flutter高仿微信-第57篇-添加好友
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...
- Flutter高仿微信-第51篇-群聊-修改群名
Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...
最新文章
- VMware调试.【转】VMware+Windgb+Win7 内核驱动调试
- 成功解决graphviz\backend.py, line 162, in pipe raise ExecutableNotFound(args) graphviz.backend.Executab
- jquery easyui dataGrid动态改变排序字段名
- XCode发布IPA离线安装包步骤
- 2.2.1.处理机调度的概念,层次
- 代码写累了来这看看,笑笑
- java coherence_Coherence配置默认覆盖路径
- 为什么使用接口编程{转载}
- linux下高可用性群集和负载均衡群集的实现
- (转)EBWin格式辞典的安装使用
- Activex控件是什么?
- 全网最细最全Appium自动化测试 iOS入门教程,App自动化测试教程,精细整理
- 竞品分析 | 荔枝VS喜马拉雅FM:有声音频APP的发展与社交
- vue 怎么解析xml
- 小白新建C语言程序(VS2019创建C语言编程环境方法详解)
- python 处理 图像和视频
- 一篇五分生信临床模型预测文章代码复现——Figure1 差异表达基因及预后基因筛选——火山图,Venn图,热图绘制(二)
- java 人脸检测 人脸抓拍
- 中文字号和磅数的联系
- 第六章 Linux实际操作——实用指令