Firebase - 初学者简介
Hellog 程序员,
在当今科技界,Firebase是最热门的技术之一,它能帮你在短时间内打造出超酷的 Web 应用或移动应用。Firebase是Google 提供的BASS(后端即服务),通过 BASS,你无需考虑如何在后端存储数据以及如何配置你的服务。所有这些工作都将由平台处理。
谢谢!内容和启动器由App Generator提供。
- React Firebase Datta Able - 开源产品
- React Firebase Datta PRO - 产品页面
Firebase提供了开发 Web 应用或移动应用程序所需的所有工具和资源。开发应用程序时通常需要开发或配置的服务包括配置服务器、管理主机托管、管理用户身份验证、编写应用程序的 CRUD 操作逻辑、存储、推送通知等等。Firebase 拥有所有这些服务,您只需单击一下即可获得。
我们可以将 Firebase 描述为一套完整的产品和服务,它使我们能够构建 Web 和移动应用程序,而无需担心后端,并提高应用程序的质量。
Firebase服务
我们主要可以将平台提供的服务分为以下几个部分:
- 开发服务
- 优质服务
- 分析服务
- 拓展服务
开发服务帮助我们在短时间内开发出应用程序;质量服务通过查看崩溃列表、检查应用程序性能来帮助我们维护应用程序的质量;分析服务帮助我们了解用户与应用程序的互动情况以及每个用户产生的对话次数。增长服务通过对用户行为进行高级预测和进行 A/B 测试来促进应用程序的增长。
由于这是一篇入门博客,因此我们只讨论开发服务,随着后续内容的深入,我们将学习所有服务并将它们运用到我们的应用程序中。
Firebase数据库
数据库是所有动态应用程序存储数据所需的最重要部分之一。我们在应用程序中或自己开发的软件中存储、检索、删除和更新数据库中的数据。Firebase 提供了两种类型的数据库来管理数据。
实时数据库- Firebase Realtime是 Firebase 提供的一项出色服务,它帮助我们跨不同设备或平台实时同步数据库。这意味着,如果数据库发生更改,所有正在使用更改数据的设备都会收到通知,用户将能够实时看到更改,无需刷新即可查看最新数据。这难道不令人惊叹吗?数据库中的数据采用 JSON 格式存储。
Firestore 数据库:Firebase 数据库也用于存储数据,但 Cloud Firestore 比实时数据库更具结构化。Cloud Firestore 拥有更多功能和高级查询,有助于获取数据,并随着应用的增长而更具可扩展性。Firestore 拥有集合,集合中包含文档,就像数据库中的表及其在表中的记录一样。
Firebase 身份验证
如果您正在开发一些动态应用,通常需要对用户进行身份验证,以便向用户显示他们自己的数据,而不是其他人的数据。简单的身份验证方法是使用电子邮件和密码进行身份验证,如果您想提升用户体验,可以添加社交登录,例如谷歌、Facebook、LinkedIn 等。从头开始设计和开发自己的身份验证非常耗时且成本高昂。借助 Firebase,您可以非常轻松地集成所有这些社交和电子邮件身份验证。Firebase 身份验证支持 iOS、Android、Web、C++ 和 Unity。
Firebase 托管服务
开发服务中的下一项服务是 Firebase 托管。顾名思义,这项服务将帮助您将 Web 应用部署到 Firebase。您只需使用一些命令即可将您的 Web 应用部署到 Firebase 托管。无需设置服务器,也无需安装安全证书。只需使用一些命令,您的 Web 应用即可部署完毕并准备上线。
Firebase 存储
云存储旨在帮助您快速轻松地存储和提供用户生成的内容,例如照片和视频。我们可以使用它来存储图像、视频、文档、音乐或任何我们需要的文件。
您的文件存储在云存储中的安全性将由 Google 管理。如果应用断开连接或由于任何原因离线,Firebase 存储还可以帮助您恢复文件上传或下载。
云功能
Firebase 为您提供了用于管理数据库的 SDK。您可以借助此 SDK 轻松执行 CRUD 操作,但有时您必须编写自己的后端逻辑,这时 Firebase 云函数就能派上用场了。只需编写后端代码并将其部署为云函数,然后像调用简单 API 一样借助 https 服务调用您的代码即可。
虽然 Firebase 函数提供了最实用、最受欢迎的功能,但其中最受用户喜爱的还是云函数触发器。你可以编写代码,用于控制数据库中发生变更或删除时的处理方式。比如,你想在用户购买商品时发送电子邮件,那么你可以在订单集合中编写 onWrite 触发器。这样,每当订单数据库中添加新条目时,这个函数就会触发,并将邮件发送给供应商。
Firebase Firestore 提供了 onWrite、onUpdate、onDelete 和 onCreated 触发器。此外,还有各种触发器,例如在用户创建、更新或删除时运行的身份验证触发器,以及在文件上传到存储时运行的云存储触发器。存储触发器最常用的示例是创建已上传图片的缩略图。编写创建图片缩略图的代码,并在图片存储时触发触发器,每当图片存储到数据库时,触发器就会运行并创建图片的缩略图。Firebase 使用此服务可以帮助您创建出色的应用。
Firebase 机器学习套件
Firebase ML Kit 是一款移动 SDK,可帮助 Android 和 iOS 应用开发者在其移动应用中使用机器学习服务。无论您是否具备机器学习经验,只需几行代码即可集成 Google 专业级别的机器学习服务。此外,它还提供各种预定义的 Google 级别机器学习服务,例如识别文本、从图像中读取文本、语言检测和对象检测。您可以非常轻松地将其集成到您的应用中。您还可以使用自定义机器学习模型集成到您的应用中。
Firebase - 一个简单的演示
至此,我们已经了解了 Firebase 开发服务如何帮助我们开发任何 Web 应用或 Android 应用。现在,我们将使用这些服务制作一个简单的演示应用。首先,我们需要在 Firebase 平台上创建一个帐户并创建一个基本项目。访问 console.firebase.google.com 并使用您的 Google 帐户登录 - 主页如下所示:
在这里,您可以查看现有的 Firebase 项目,也可以点击“添加项目”来创建新的 Firebase 应用。让我们继续创建新项目。
这是单击添加项目选项后看到的第一步。输入项目名称。在这里,我使用 app-seed 作为项目名称。请注意,每当您创建新的 Firebase 应用时,它也会创建一个 Google-Cloud-Project。您可以使用此项目 ID 来使用 Google Cloud 的服务,就像 App Engine、Cloud Tasks 和其他服务一样。请记住,项目 ID 是全局唯一标识符,将来无法更改。这里我的项目 ID 是app-seed-de1a5。
第二步是为您的 Firebase 项目设置 Google Analytics(谷歌分析)。这项分析服务可以帮助我们了解用户如何使用我们的应用,并根据用户之前的活动进行未来预测等等。由于我们设置的是简单应用,因此可以禁用此功能,然后点击“创建项目”选项。
此步骤可能需要一段时间。创建项目后,点击“继续”,它将带您进入 Firebase 应用的主页。
恭喜,您已成功创建您的第一个 Firebase 应用。只需点击几下鼠标,数据库、托管、身份验证以及其他所有相关工作就绪。以下是一些开发服务,其中排名前五的服务主要用于初学者项目。
让我们将网站托管到 Firebase 中。为此,我们需要在本地计算机上安装Firebase CLI(firebase-tools)npm 包。让我们安装它,您必须在计算机上安装 Node 和 NVM 才能使其正常工作。如果您的本地计算机上尚未安装 Node,请先安装它,然后运行此命令。
$ npm i -g firebase-tools
安装 Firebase CLI 后的下一步是运行“firebases login”命令,以便我们的 CLI 能够访问 Firebase 项目。在终端中运行“firebase login”,它会要求打开默认浏览器并询问项目的权限。请允许 Firebase CLI 访问。
在终端中使用 firebase 登录后,我们需要将我们的 firebase 应用程序与 firebase 项目连接起来,为此在任何地方创建一个新的文件夹,并在该项目内运行 firebase init 命令。
$ firebase init
输入 Y 继续。然后通过向上/向下箭头键选择“主机”,按空格键选择选项,再按 Enter 键确认。
现在它会询问我们选择现有项目还是创建新项目。由于我们已经创建了 Firebase 项目,因此请选择现有项目。
现在它会显示你所有的 Firebase 项目,并选择你新创建的项目。在我们的例子中,它是第一个。
现在它会询问您要选择作为托管目录的目录。您将所有 HTML 文件保存在此目录中,并且此文件夹中的内容将部署到托管目录上。在 Firebase 生态系统中,我们将使用 Public 文件夹作为托管目录。然后,它会询问当有人访问您的应用时将打开的主文件。选择“是”将所有 URL 重写为index.html。这是配置 Firebase 项目的最后一步。
现在检查运行上述命令的文件夹。Firebase CLI 已经创建了一些文件和文件夹。由于我们选择了 Hosting,它创建了 public 文件夹。如果我们选择了 firebase-function as 选项,那么文件夹名称就是 functions。
现在我们已经知道了公共文件夹的用途,让我们了解一下其他三个文件。
当您有多个具有相同代码库的项目时,资源文件.firebaseserc
非常有用。例如,一个是您的实时应用程序,一个是您的测试应用程序,那么您可以在此文件中对两个项目进行配置。
{
"projects": {
"production": "my-production-project-id",
"testing": "my-staging-project-id"
}
}
您可以使用 firebase use 命令轻松地在项目之间切换。例如,如果我必须使用测试应用,我可以使用“firebase use Testing”切换到测试项目,现在无论我进行托管部署还是功能部署,它都指向测试项目。
另一个重要的文件是firebase.json
包含我们将用于部署托管或函数的文件夹的配置路径、数据库规则等等。以下是 firebase.json 文件的内容。
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
更改默认index.html
文件并编写基本的 html 代码或复制下面的代码。
<html>
<head>
<title>
learn with app seed
</title>
</head>
<body>
<h1>we are learning the firebase with app-seed</h1>
</body>
</html>
这里的 firebase deploy 是命令,--only hosting
仅用于部署主机。我们只能使用“firebase deploy”命令一次性部署主机、函数和数据库规则。要部署 Firebase 函数,我们使用以下命令:
$ firebase deploy --only functions
部署完成后,它会为您提供唯一的 URL,在我们的例子中是https://app-seed-de1a5.web.app。将您的 URL 复制到浏览器中并打开它。
恭喜!您刚刚部署了这个简单的应用。现在,前往 Firebase 控制台并打开“托管”选项卡。在这里,您可以查看托管 URL 和部署历史记录。
React Firebase 数据可用
Datta Able是一款开源React 仪表板,提供丰富多彩的现代设计。Datta Able React Free 是市面上所有管理模板中最具风格化的 React Free 管理模板。它拥有功能丰富的页面和组件,并完全以开发人员为中心编写代码。
该产品集成了Firebase。
- React Firebase Datta Able - 产品页面
- React Firebase Datta Able - 现场演示
React Firebase Datta PRO
Datta Able是一款高级React 仪表板,提供丰富多彩的现代设计。Datta Able React PRO 是市面上所有管理模板中最具风格化的 React 免费管理模板。它拥有功能丰富的页面和组件,并完全以开发人员为中心编写代码。
该产品集成了Firebase。
- React Firebase Datta PRO - 产品页面
- React Firebase Datta PRO - 在线演示
感谢阅读!请在评论区留言,分享你的想法。
链接和资源
- Firebase 文档- 必读资源
- 如何使用 Firebase 托管多个网站- StackOverflow 上开设的一个好话题
- 实时数据库与 Cloud Firestore