我愿意为我的应用程序使用同步服务。但我想选择最好的一个。我想知道哪一个更好。我的应用程序将在Android,IOS,Windows和Web上运行。
我要使用Firebase,因为我测试了它。它给了我快速的结果,它也允许我离线工作。它会更好还是我会选择Parse或AWS Cognito?
我还可以选择Google Cloud。 Google Cloud是否提供Firebase等服务? Parse和Firebase一样可以实时更新吗?
答案 0 :(得分:28)
Codeek有一个很好的观点,即这个问题是以意见为基础的,所以我的答案是有一点点的。
我对Parse和Firebase都有经验,但对Cognito没有经验。 根据我的经验,在使用基于关系的大型数据库时,Parse更好。 (I.E.数据库,其中多个对象类彼此指向并进行交互。)在该系统中,很容易非常简洁地存储大量数据,但是通过快照来处理这些数据。这意味着您可以拍摄数据的快照,对其进行编辑,然后使用更新的快照刷新服务器。这对于像我的交付应用程序这样的东西来说是完美的,其中只有一个用户在任何时候都在我们的服务器上更新订单。
Firebase实现了模型 - 观察者方案,因此对于高度交互的应用程序来说更好。例如,我使用Firebase创建了一个实时的烫手山芋游戏。这里的优点是服务器上的数据更改会自动推送到已注册为侦听器的所有设备(根据我的经验,Parse不提供的功能)。这使所有用户始终处于同一页面。缺点是数据库是以层级方式构建的,并且没有定义"对象"。相反,它是通过键/值对构建的,其中父键不能具有关联值。为了说明这一点,在我的数据库中存储游戏的示例结构如下:
-Games
--1
---Users
----1 = "example@gmail.com"
----2 = "example2@gmail.com"
---PotatoHolder = 1
---TimeRemaining = 30
---Loser = -1
Cognito我不熟悉,因此我将允许其他人解释该数据库系统的设计方式。
总之,codeek是正确的,这是一个基于意见的问题,但对于你的两个选项,根据我的经验,一个好的经验法则是Parse对于大型关系数据库与单用户应用程序(即单人游戏或回合制游戏)。 Firebase更适合与实时多人游戏应用程序结合使用的分层数据系统。
我希望这有帮助!如果您可以发布一些关于您正在尝试构建的应用程序的更多信息,那么也许我或其他人可以提供更多指导。
扩展答案:虽然这个问题已被标记为偏离主题,但如果有办法将Parse用作模型 - 观察者方案,则回答Nidhi的后续问题:< em>不容易。使用计时器是最简单的选择。另一种选择是使用推送通知。 这需要获得您用户的许可。您可以在Parse上设置Cloud Code以自动发送所有相关用户的推送通知,然后在您的客户端中拦截它们,以便它们“静音”#34;。换句话说,当他们到达时,您可以通过更新游戏来让客户做出回应,而不会显示正常推送通知的功能区或通知。我自己没有这样做,因为我更喜欢使用Firebase进行这种应用,但我相信这是可能的
来源: PFQueryTableView Auto Refresh When New Data Updated or Refresh Every Minute Using Parse
Keith的回答类似于Nidhi通过Timer提及刷新PFObjects的内容,而且他的评论指的是&#34; silent&#34;推送通知。