如何成功使用Firebase构建API?

Firebase是一个在2012年推出并在两年后被谷歌收购的应用开发平台。在刚开始时,Firebase只被视为实时应用程序的数据库,但谷歌看到了它的潜力并决定为其添加其他服务。

目前,Firebase是一个拥有18个服务的后端服务系统,用于简化Web和移动应用程序的创建。使用Firebase的BaaS服务的公司包括Accenture、阿里巴巴旅行、Stack、Twitch和Instacart,以及其他2300多家公司。

使用Firebase的好处

Firebase最早提供的服务是实时数据库,并且它仍然是最重要的吸引点之一。Firebase实时数据库托管在云端,以JSON格式存储数据,并与连接到它们的每个客户端实时同步。无论使用iOS SDK、Android SDK还是JavaScript SDK,连接到Firebase实时数据库的所有应用程序共享一个数据库实例,始终保持最新数据。

Cloud Firestore是另一个有趣的Firebase服务。它是一个为移动和Web应用程序设计的NoSQL文档数据库,旨在简化数据存储、同步和查询。创建层次结构以存储相关数据和表达式查询以检索数据,可以充分发挥Cloud Firestore的潜力。此外,查询根据结果的大小而不是数据集大小进行扩展。这使得应用程序能够从一开始就进行扩展,而不需要等到需求超过容量的时刻。

除了上述的数据库服务,Firebase还提供hosting services、文件存储、功能(AWS Lambda-style)等等。

创建API

API是提供给自己或第三方应用程序使用的服务方式。Firebase允许您提供自定义服务,同时利用Firebase自身的服务,而无需为这些服务设置后端。例如,您可以为第三方应用程序提供访问Firebase实时数据库的权限,以查询工业传感器收集的信息。

在Firebase中创建API的第一步是访问Firebase console并通过点击“添加项目”来添加一个新项目并给它一个名称。谷歌将为您的新项目提供启用Google Analytics的选项。建议接受此建议,因为您将从API中获得A/B测试和各种统计报告等好处。

创建项目后,您将能够选择您的API将使用的Firebase服务。为了说明这个任务,我们将看看如何使用Firebase实时数据库服务。

在Firebase中设置实时数据库

在左侧的导航栏中,选择开发部分中的“实时数据库”。右侧将出现一个“创建数据库”的按钮。点击它以在Firebase中创建您的第一个数据库。

接下来,您将需要为您的新数据库选择几个地理位置选项。选择最靠近您的用户的选项。这是最小化API延迟的重要方面,特别是对于实时应用程序。

下一步是配置数据库的基本安全规则。您可以选择锁定模式,然后根据需要分配访问权限,或者选择测试模式,该模式允许所有读写操作。

您可以从测试模式选项开始,以免在开始时复杂化安全设置。您始终可以稍后创建规则以更精细地设置安全配置。

一旦您完成配置数据库,相应的API也将在您的个人控制台的Google云平台的API和服务部分中启用。

编写Firebase API

在这一点上,您已经在Firebase控制台中配置了项目的基本元素。下一步是编写API代码。为此,您需要在本地计算机上初始化Firebase托管和函数。您可以使用npm安装firebase-tools:

npm install -g firebase-tools

然后,您可以登录firebase并使用以下命令初始化项目:

firebase login firebase init

将显示欢迎屏幕,Firebase将在其中通知您将初始化项目的文件夹,并显示选项菜单。

在该菜单中,选择Functions和Hosting(Hosting选项将允许您为即将开发的API拥有自定义URL)。然后从列表中选择您之前创建的Firebase应用程序,然后必须选择要使用的语言。要开发Web API,可以选择JavaScript。

如果您将使用软件包依赖项,请在functions文件夹中使用npm安装它们。然后,您可以开始编写函数的代码。记得包括firebase-functions和firebase-admin包,以及您需要的任何其他包:

import * as functions from ‘firebase-functions';
import * as admin from ‘firebase-admin';

要使用实时数据库,在初始化JavaScript SDK时,必须指定其URL。该URL位于Firebase控制台的实时数据库部分中。您可以通过其格式来识别它:

https://..firebasedatabase.app

您可以使用以下片段初始化SDK,替换与您项目的配置对象对应的数据:

var config = {
apiKey: “apiKey”,
authDomain: “projectId.firebaseapp.com”,
databaseURL: “https://databaseName.firebaseio.com”,
storageBucket: “bucket.appspot.com”
};
firebase.initializeApp(config);
var database = firebase.database();

一旦编写了API函数的代码,就可以部署了。但在此之前,您需要在firebase.json中进行一些更改,根据您的项目配置添加以下行:

“rewrites”: [
{
“source”: “/api/v1/**”,
“function”: “webApi”
}
]

下一步是部署。首次部署时,您必须执行完整的部署命令:

firebase deploy

在后续部署中,您可以使用- only functions参数仅部署函数。

执行部署命令后,Firebase CLI会在终端中显示函数的HTTP端点的URL,您可以使用该URL从Web应用程序调用API。该URL包含您的项目ID和HTTP函数的区域。例如,以下URL可用于调用项目查询函数,并将itemid = 1作为参数传递给它:

https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

要执行该函数,请在浏览器中打开相应参数的URL。

请注意,部署到生产环境需要订阅Firebase Blaze计划,该计划是按使用量计费的,您可以在Firebase定价页面上阅读。这是一项后付费服务,这意味着您每个月都按使用情况收费。

如果您没有Blaze订阅,部署命令将不会显示您的API URL。相反,您将会看到一条消息,告知您如果要在运行时环境中部署,您必须订阅Blaze计划。在这种情况下,您仍然可以使用Firebase本地仿真套件在本地机器上构建和测试应用程序,而不是将其部署到Firebase生产环境中。本地测试对于在应用程序开发过程中避免不必要的费用很有用,因为每次测试运行可能会对您的账户产生费用。

本地测试和原型设计

本地仿真套件工具提供了一个集成的用户界面,使原型设计变得简单易用,并且对在本地机器上测试应用程序非常有用。

通过仿真套件用户界面,您可以测试数据库设计、云函数工作流程、分析后端服务性能以及评估安全规则的更改等任务。它基本上是在将API功能发送到生产环境之前测试其功能的安全沙箱。

要模拟您的函数或在本地测试应用程序,请运行firebase emulators:start。您必须安装Java才能使用Firestore仿真器。如果您没有安装,可以从here安装它。

当您调用Firestore仿真器时,该命令将返回一个URL,该URL将允许您在浏览器中打开仿真套件用户界面。默认情况下,此URL将为localhost:4000,但在每台机器上可能会有所不同。

您还将获得一个完整的HTTP函数URL。此URL看起来类似于:

http://localhost:5001/apiproject-8753c/us-central1/itemQuery

它将包含您的项目名称、函数名称,并且在您的本地机器上可能还具有不同的端口号。

要测试函数,请复制仿真器返回的URL,添加任何必要的参数(例如?itemid=1),并在浏览器的新选项卡中输入。API执行结果将显示在仿真套件用户界面中。

在日志选项卡中,您将看到新的日志,指示执行了itemQuery()函数。如果您的函数在Firestore数据库中生成了新数据,您将在Firestore选项卡中看到它。

为您的API获得更多曝光

如果您希望开发的API变得受欢迎,Firebase也可以帮助您。它不仅可以让您更快地构建应用程序,从而省去了启动后端服务的大部分工作,还可以帮助您进行产品定位。为什么?因为与Firebase关联的应用程序在搜索排名中比其他应用程序排名更高。

此外,请考虑Firebase的应用索引API。此工具可以改善应用链接的搜索排名,帮助用户找到所需的内容。它还在您的应用程序主页按钮之后放置安装按钮,以便对您的应用程序感兴趣的用户只需点击一下即可成为您的应用程序用户。

总之,Firebase不仅提供了可以大大加快应用程序开发速度的后端服务,而且一旦应用程序启动并暴露给世界,它还可以帮助您进行推广和从中获利。

类似文章