我目前正在使用Firebase开发聊天应用程序。 Firebase离线功能效果很好。目前我对CoreData没有任何认识,但我开始学习。我的应用程序的工作原理,方式是这样的:Firebase聊天应用程序(使用CoreData改进UX)
你写一个消息- >它进入火力 - >更新集查看
我遇到的问题,有时我有一个非常缓慢的连接,所以,该消息需要一段时间才能进入收集视图。
我想我喜欢这个程序工作:
写一个消息 - >去的CollectionView第一 - >然后去火力点 - 根据消息>更新标签与“已发送”
现在时我这样做,消息发送到collectionView,然后firebase被触发,并复制消息。
如果我使用逻辑来阻止Firebase重复,则当我离开视图时,消息将丢失。
现在,我觉得我的问题唯一的解决办法是做这样的:
发送消息 - >放在coreData - >放的CollectionView - >放在火力 - >看到的消息来自firebase - >如果消息已经在coreData里面了,不会重复。
所以问题是,有没有更简单的方法来做到这一点有/无coredata?
如果我必须使用coredata,我应该关注什么,我读了一些我需要两个上下文的地方,一个父母和一个孩子,一个使用UI在主队列上工作,另一个作品在后台从firebase获取消息,我是在正确的轨道上? (对不起,没有经验的长问题)
我不建议将消息存储在内存中的数组中 - 那么您必须手动管理该数组的长度,然后将其丢弃,缓存或以其他方式将消息存储到更永久的数据库中。 CoreData虽然具有挑战性,但却是为这样的事情设计的。 – brandonscript
然后尝试这种方式。您只在聊天视图中显示10条消息。并且将消息存储在内存中根本不占用如此巨大的内存。您只需将图片,视频存储在设备上,其他信息只是一个文本,并不需要如此巨大的内存。如果它不符合你的要求,你也可以使用CoreData。 CoreData不难使用。 –
这是一个_question_不是答案 - 当然不是一个解决方案;) – brandonscript