我愿意为我的应用程序使用同步服务。但我想选择最好的。我想知道在所有这些中哪个更好。我的应用程序将在 Android 、 IOS 、 Windows 和 Web 上运行。
我将使用 Firebase,因为我对其进行了测试。它给了我快速的结果,也让我可以离线工作。是更好还是我会使用 Parse 或 AWS Cognito?
我也可以选择 Google Cloud。Google Cloud 是否提供像 Firebase 这样的服务?Parse 是否可以像 Firebase 一样进行实时更新?
我愿意为我的应用程序使用同步服务。但我想选择最好的。我想知道在所有这些中哪个更好。我的应用程序将在 Android 、 IOS 、 Windows 和 Web 上运行。
我将使用 Firebase,因为我对其进行了测试。它给了我快速的结果,也让我可以离线工作。是更好还是我会使用 Parse 或 AWS Cognito?
我也可以选择 Google Cloud。Google Cloud 是否提供像 Firebase 这样的服务?Parse 是否可以像 Firebase 一样进行实时更新?
Codeek 有一个很好的观点,即这个问题是基于意见的,所以请对我的回答持保留态度。
我有使用 Parse 和 Firebase 的经验,但没有使用 Cognito。根据我的经验,Parse 在处理基于关系的大型数据库时效果更好。(IE 数据库中多类对象相互指向并交互。)在这个系统中,很容易非常简洁地存储大量数据,但是处理这些数据是通过快照完成的。这意味着您可以拍摄数据的快照,对其进行编辑,然后使用更新的快照刷新服务器。这对于像我的交付应用程序这样的事情来说是完美的,在这种应用程序中,任何时候只有一个用户在我们的服务器上更新订单。
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 的后续问题:不容易。使用计时器是最简单的选择。另一种选择是使用推送通知。这需要从您的用户那里获得许可。您可以在 Parse 上设置 Cloud Code 以自动向所有相关用户发送推送通知,然后在您的客户端中拦截它们,使它们“静默”。换句话说,当它们到达时,您可以让您的客户端通过更新您的游戏来响应,而无需像普通推送通知那样显示功能区或通知。我自己没有这样做,因为我更喜欢将 Firebase 用于这种应用程序,但我相信这是可能的。
资料来源: PFQueryTableView Auto Refresh When New Data Updated or Refresh Every Minute Using Parse
Keith 的回答类似于 Nidhi 提到的通过计时器刷新 PFObjects,Handsomeguy 的评论指的是“静默”推送通知的可能性。