NextJS API 路由与 Firebase 云函数

jac*_*boy 4 firebase reactjs google-cloud-functions next.js

NextJS 有一个解决方案来构建您自己的 API 并让它处理身份验证和发出数据库请求等事务。

如果我使用 Vercel 来托管我的应用程序,是否有真正的原因(除了成本之外)使用 Firebase Cloud Functions 与 NextJS 分开,或者它们的工作原理相同吗?

将所有服务器端内容放在 NextJS 和 Vercel 上会比放在 Firebase Cloud Functions 上更容易吗?

Nic*_*ick 9

在 Firebase Cloud Functions 和 Next.js API 路由之间做出决定时需要考虑一些事项。

使用云函数的理由

数据库更改时触发

如果添加了文档,您可以使用 Firebase Cloud Function 对数据执行某些操作。Next.JS不会自动触发。

与谷歌云集成

如果您想与 Google Cloud 紧密集成,您可能希望坚持使用 Firebase。除了错误记录之外,我想不出任何具体原因说明这将是一个决定因素,但它可能是您的用例的一个因素。

您需要的不仅仅是 REST API

Firebase 函数有多种类型。可调用、HTTPs、触发等。如果您需要的只是 HTTPs 函数,那么您可能只需使用 Next.js 函数即可。但 Next.js 不可能做到更多。

独立部署功能

使用 Next.js,要更新功能,您需要再次重新部署整个站点。借助 Firebase 函数,您一次可以部署一项函数。

使用 Next.js API 函数的原因

如果在 Vercel 上,它们基本上是免费的

由于整个 Next.js 应用程序被分解为无服务器功能,Vercel 本质上不会放置[its normal limits on Next.js API function calls][1]. 我还没有遇到过价格确实是一个因素的项目,因为 Firebase 功能非常便宜,但也许这是您需要考虑的事情。

开发更简单

对于 Firebase Functions,您还需要在开发时设置和使用模拟器。Next.js API 函数是 Next.js 的一部分,并且在开发中自动工作。


我的选择?如果该项目只能使用 Next.js API 路由,我会坚持这样做。如果没有,我会在 Firebase Cloud Functions 中编写所有内容。这样只会让事情变得更简单。