使用 Firebase 作为后端与编写自己的后端系统——哪个更好?

Using Firebase as backend vs coding own backend system - What's better?

我的目标是构建一个日历 Flutter 应用程序,它提供用户身份验证。由于我是后端编程的初学者,所以我想到了使用 Firebase。然而,在告诉自己这件事的同时,我读到使用 Firebase 有很多缺点,例如:

因此,我打算了解更多关于 REAL 后端开发的知识,并遇到了 express、MongoDB 和 node.js,这非常有趣,尤其是为我的项目。 但我的问题是,我必须使用 Heroku 来托管我的休息 API,这对我来说太贵了,包括 MongoDB 的定价。此外,我必须使用 JWT 构建自己的身份验证系统,我不确定它是否可以像 Google 的 Firebase 一样安全。 :/

现在我的问题是: 你们觉得我的项目用 Firebase 够用,还是投资 MongoDB 和 Heroku 更聪明?显然也欢迎其他后端方法! :)

编辑

只是 re-read 你的问题,如果你只需要授权,我会使用 Firebase。它与 Flutter 配合得很好,并且相对容易设置,它是安全的并且始终免费,除非您使用 phone 授权。

关于后端数据库的原始答案

除非您拥有大量用户,否则 Firebase 定价不会成为问题。您所指的任何查询限制可能与您的日历应用程序需要执行的操作相关,也可能不相关。我的猜测是 Firebase 可能完全适合您的项目,除非您预计会有很多用户提出很多查询。您也可以启动,并且 运行 比编写自己的后端要快得多。

Node/Mongo 是一个很棒的组合,使用 Mongo Atlas 托管的免费套餐,您可以获得大约 500MB 的免费存储空间。 Heroku 上还有一个免费层,它也将托管您的 Node 应用程序,因此您可以在一定程度上免费托管您自己的后端。

您可能会发现,如果您没有上传大文件并且您的所有数据都是 json/string 数据,那么您可能会发现走这条路可以在 运行 存储空间不足之前走得更远。如果您对后端开发感兴趣,那将是一次很好的学习经历。在 App Brewery Web Dev 课程的 Mongo 和 Node 部分之后,我在跟随视频的几个小时内在 Heroku 上托管了一个基本的 Express/Mongo 应用程序,当时后端经验为零。显然,任何真正的 Node 应用程序都需要更多的开发时间。

走这条路的另一个好处是,您可以根据自己的需要自定义响应,并简化 Flutter 方面的事情。