Google App Engine与Firebase

时间:2016-05-26 21:46:02

标签: google-app-engine firebase google-cloud-endpoints

我正在尝试决定使用哪个选项。 (如果更好的话,还是另一个) 这适用于消息类型的应用程序,其中会有大量的通知和数据库写入。

选项1 - 使用云端点和云数据存储的Google App Engine
优点:

  • 能够按照我想要的方式构建API。
  • 可扩展

缺点:

  • 实施通知系统的更多工作。 (最终将成为Firebase云消息传递)

选项2 - Firebase
优点:

  • 能够使用Firebase数据库,Firebase用户身份验证,Firebase云消息传递(通知)
  • 所有设备的详细使用统计信息

缺点:

  • 无API

选项3 - 是否可以合并Google Cloud Endpoints和Firebase?

3 个答案:

答案 0 :(得分:66)

首先,请查看Google文档中的图表here,以便对他们提供的不同移动应用后端服务进行精彩比较和对比。这是图表:

enter image description here

我的个人意见(更新):

选项1 - 使用云端点和云数据存储的Google App Engine
优点:

  • 您将学习更多关于编写自己的API的restful模式。您还将被迫学习如何进行宁静的api调用(使用iOS或Android),这是业内非常有价值的技能。 Firebase类似于为您完成所有事情,您将永远不会学到这些东西。
  • 您必须自己编写,但您可以通过API方法和Google Cloud Messaging以及您创建的方法类型获得真正的创意。他们可以真正做任何事情并连接到任何数据库(例如MySQL,SQL Server,Datastore)。在Firebase中,您必须使用基于json的数据库。我不建议为应用程序使用SQL数据库,但不同的人有不同的需求。

缺点:

  • 这需要更多的工作,并且首先在数据存储区周围包裹起来可能很困难。它不像SQL这样的关系数据库。
  • 此外,我觉得有一些方面你可以通过创建非常低效的方法和查询来“射击自己”,因此需要很长时间才能运行。
  • 对于新应用而言,令人讨厌的一件事是GAE中的自动缩放。长话短说,如果没有人在大约15分钟内点击你的API,那么所有实例都会被关闭。一旦进行了新的调用,需要花费大量时间来备份实例并执行您的API方法。这对于新应用程序来说可能很烦人,因为新用户可能会对应用程序出现问题,因此可能会停止使用它。你可以进行手动缩放,但是这需要花钱才能有一个实例(从我的账单应用程序开始,每月约27美元/月)。请在此处查看我的帖子,了解有关此问题的更多信息以及我提出的solution

选项2 - Firebase
优点:

  • 它对初学者来说很容易使用,并且Firebase上有大量的教程/课程来做你想要做的那些流行的事情,比如发送推送通知和同步数据。
  • 与GAE不同,它开箱即用。没有启动实例。这使得它非常适合希望通过快速数据获取用户的新应用。
  • 你可以到处学习适配器(Android)和网络(在移动应用程序中)等复杂事物的细节,只需依靠Firebase类。也许这是一个更友善的诺布?再一次,文档是伟大的,开箱即用我认为通过编写低效的查询来拍摄自己的机会较少。

缺点:

  • Firebase对客户端代码很重视。如果你想要Android和iOS应用程序,你必须为它们编写很多客户端代码。在GAE中,很多逻辑都在GAE应用程序中被抽象出来。但如果你真的不想在你的应用程序中使用数据库管理员并且只有知道Firebase的iOS + Android开发人员,这可能是一个优势。但对我来说,这是一个很大的转折点。
  • 如果Firebase走向Parse.com的方式怎么办... Facebook宣布他们将不再支持它了。真的很糟糕!您将被锁定在Firebase中,并且尚未开发出有关如何创建restful API的任何编程知识。然而,由于谷歌对Firebase的大量投资以及现在将GCM升级到Firebase云消息传递,很明显他们对Firebase有很大的计划,而且它无处可去。所以我认为这不算是一个“骗局”,但要记住它吗?

在链接中阅读更多信息,以便将它们组合起来。

答案 1 :(得分:42)

我很困惑很多关于Firebase的讨论(包括上面的问题和答案)都没有提到对我来说是一个非常重要的区别:价格。

以下是Firebase price时间表。

以下是DatastoreGAE定价。

比较这些可能很棘手,但我的解释是Firebase非常昂贵。

这应该不足为奇。 GAE和数据存储必须与来自亚马逊,微软等的类似服务竞争,竞争非常激烈。是的,这些服务当然不像基础设施和SQL那样通用,但它们似乎足够接近,价格仍然具有竞争力。

另一方面,Firebase是一种优质服务,可与其他后端服务(如Parse)竞争,一旦您决定使用它,我认为切换非常困难。谷歌如此努力地推动Firebase应该毫不奇怪 - 他们可能会从中获得大量资金,因为他们可以以如此高的价格定价。

在我看来,这样做的结果是Firebase是低容量和高利润率服务的理想选择,但是如果你打算创建一个典型的,面向消费者的,广告支持的服务,这将取决于大量的服务钱,那么Firebase的成本可能会损害你的利润。

2017-10加法

我最近发布的Firestore再次查看了Firebase。

我认为重要的是要注意另一个问题:将Firestore用于Android应用意味着使用严重依赖Google Play服务的Firebase客户端库,这意味着您无法部署到包括亚马逊在内的非Google设备消防平板电脑和(我相信)整个中国市场。

答案 2 :(得分:1)

我最近学到的一件事是,我正在努力寻找解决方案,因为firebase不提供任何有关设备到设备通知的工作;虽然它确实提供了服务器到设备推送通知,但它很容易设置。但前者缺乏功能是非常重要的,因为他们试图推动你使用其他谷歌产品,这是一个阴谋论。

或者,也许,因为它一开始并没有发展,所以它们保持不变。我认为app引擎是为此目的连接firebase和设备的一种方式,所以在这种情况下我会倾向于将firebase和其他google产品结合起来app engine。如果您计划进行更多后端处理(如图像处理等),那么您正在查看app engine and compute engine,确保哪些内容可以与Firebase集成,从而产生一个假设强大的后端解决方案。