百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

Firebase 简介以及 VS code 无法访问的问题

ztj100 2024-12-27 17:52 9 浏览 0 评论

最近在开发项目中有使用到 firebase ,在这里记录一下开发心得。

firebase 是谷歌推出的云产品,官方对其的定义是:Firebase是谷歌的移动平台,可以帮助您快速开发高质量的应用程序,并发展您的业务。

我在使用过程中的理解是:Firebase 是一个谷歌推出的 “低后端代码“ 开发平台,帮助开发者减少后端代码编写量。


firebase 主要包含 Authentication、Firestore、 Realtime Database、storage、hosting、functions 、plugins以及机器学习等模块

Authentication

大多数应用都需要了解用户的身份。了解用户的身份可以让应用将用户数据安全地保存在云端,并在用户的所有设备上为其提供一致的个性化体验。

Firebase 身份验证提供了后端服务、易用的 SDK 以及现成的界面库,以便向您的应用验证用户的身份。该功能支持通过密码、电话号码、主流联合身份提供商服务(如 Google、Facebook 和 Twitter 等)进行身份验证。

说简单点就是一套集成了手机号登录、邮箱登录、第三方登录的无需后端代码即可调用的 sdk

Firestore

Cloud Firestore 是一种灵活且可扩缩的数据库(类似于键值型存储数据库),适用于在 Firebase 和 Google Cloud Platform 上进行移动、Web 和服务器开发。与 Firebase Realtime Database 一样,它可以通过实时侦听器使您的数据在各个客户端应用之间保持同步,并为移动和 Web 应用提供离线支持,以帮助您构建无论网络延迟时间或互联网连接状况如何都能快速响应的应用。Cloud Firestore 还提供与其他 Firebase 和 Google Cloud 产品(包括 Cloud Functions)的无缝集成。

Realtime Database

Firebase 实时数据库允许从客户端代码中直接安全地访问数据库,得益于此,您能够构建功能丰富的协作式应用。数据会永久性地保留在客户端,即使处于离线状态,实时事件仍会继续触发,给最终用户提供良好的即时性体验。当设备重新连接到网络时,实时数据库会将本地数据变化与客户端离线期间发生的远程更新同步,自动合并任何不一致的数据。

实时数据库提供灵活的基于表达式的规则语言(称为“Firebase 实时数据库安全规则”),可以定义您的数据结构以及何时可以读取或写入数据。当与 Firebase 身份验证集成时,开发者可以定义什么人可以访问什么数据以及如何访问数据。

实时数据库是一种 NoSQL 数据库,因此具有不同于关系型数据库的优化方向和功能特点。Realtime Database API 的设计只支持可以快速执行的操作。这使您能够构建实时性更强的体验,即使服务数百万的用户,响应速度也丝毫不受影响。因此,请务必认真考虑用户需要如何访问您的数据,以便相应地设计数据结构。

Stroage

Cloud Storage 可存储图像、视频和音频等文件,以及其他用户生成的内容。可以理解为 OSS

Hosting

Firebase 托管可托管您的网站的 HTML、CSS 和 JavaScript 资源以及由开发者提供的其他资源(如图形、字体和图标)。可以理解为虚拟主机

Plugins

插件模块主要是提供一些 应用程序中常用的功能,如 发送邮件、短信验证码等等

Functions

云函数,主要是执行一些需要后端处理的逻辑代码,托管在 Google 服务器,在您编写并部署函数后,Google 的服务器会立即开始管理函数。您可以使用 HTTP 请求直接触发函数,或者,如果触发的是后台函数,Google 的服务器会侦听事件并在函数被触发时运行函数。

Google 会随着负载的增加或减少而做出响应,迅速调节运行函数所需的虚拟服务器实例的数量。每个函数都拥有自己的配置,会在自己的环境中单独运行。

开发

实际开发过程中使用较多的是数据库和云函数模块,可以根据对应的开发文档引入 sdk,调用即可,官方文档

主要记录

国内开发者可能无法直接访问谷歌服务,配置 VPN 后,浏览器可以访问,通过 vs code 访问 firebase API 时会出现超时的问题,最可能出现在部署云函数时操作超时。

主要解决方法如下(适用于 nodejs 项目):

寻找 项目目录内 node_modules 下 @request/request.js 查找并替换如下代码片段

if (!self.hasOwnProperty('proxy')) {

    //self.proxy = getProxyFromURI(self.uri)

    self.proxy = '127.0.0.1:7890' // 端口号为你的代理端口,无需 http 前缀

  }

安装完 firebase sdk 的 npm 包后,找到所在包的文件 node_modules\firebase-tools\lib\apiv2.js ,查找并替换如下内容

function proxyURIFromEnv() {
    
    return  'http://127.0.0.1:7890' // 端口号为你的代理端口,需要携带 http 前缀

    return (process.env.HTTPS_PROXY ||
        process.env.https_proxy ||
        process.env.HTTP_PROXY ||
        process.env.http_proxy ||
        undefined);
}

相关推荐

Java项目宝塔搭建实战MES-Springboot开源MES智能制造系统源码

大家好啊,我是测评君,欢迎来到web测评。...

一个令人头秃的问题,Logback 日志级别设置竟然无效?

原文链接:https://mp.weixin.qq.com/s/EFvbFwetmXXA9ZGBGswUsQ原作者:小黑十一点半...

实战!SpringBoot + RabbitMQ死信队列实现超时关单

需求背景之为什么要有超时关单原因一:...

火了!阿里P8架构师编写堪称神级SpringBoot手册,GitHub星标99+

Springboot现在已成为企业面试中必备的知识点,以及企业应用的重要模块。今天小编给大家分享一份来着阿里P8架构师编写的...

Java本地搭建宝塔部署实战springboot仓库管理系统源码

大家好啊,我是测评君,欢迎来到web测评。...

工具尝鲜(1)-Fleet构建运行一个Springboot入门Web项目

Fleet是JetBrains公司推出的轻量级编辑器,对标VSCode。该款产品还在公测当中,具体下载链接如下JetBrainsFleet:由JetBrains打造的下一代IDE。想要尝试的...

SPRINGBOOT WEB 实现文件夹上传(保留目录结构)

网上搜到的SpringBoot的代码不多,完整的不多,能用的也不多,基本上大部分的文章只是提供了少量的代码,讲一下思路,或者实现方案。之前一般的做法都是使用HTML5来做的,大部都是传文件的,传文件夹...

Java项目本地部署宝塔搭建实战报修小程序springboot版系统源码

大家好啊,我是测评君,欢迎来到web测评。...

新年IT界大笑料“工行取得基于SpringBoot的web系统后端实现专利

先看看专利描述...

看完SpringBoot源码后,整个人都精神了

前言当读完SpringBoot源码后,被Spring的设计者们折服,Spring系列中没有几行代码是我们看不懂的,而是难在理解设计思路,阅读Spring、SpringMVC、SpringBoot需要花...

阿里大牛再爆神著:SpringBoot+Cloud微服务手册

今天给大家分享的这份“Springboot+Springcloud微服务开发实战手册”共有以下三大特点...

WebClient是什么?SpringBoot中如何使用WebClient?

WebClient是什么?WebClient是SpringFramework5引入的一个非阻塞、响应式的Web客户端库。它提供了一种简单而强大的方式来进行HTTP请求,并处理来自服务器的响应。与传...

SpringBoot系列——基于mui的H5套壳APP开发web框架

  前言  大致原理:创建一个main主页面,只有主页面有头部、尾部,中间内容嵌入iframe内容子页面,如果在当前页面进行跳转操作,也是在iframe中进行跳转,而如果点击尾部按钮切换模块、页面,那...

在Spring Boot中使用 jose4j 实现 JSON Web Token (JWT)

JSONWebToken或JWT作为服务之间安全通信的一种方式而闻名。...

Spring Boot使用AOP方式实现统一的Web请求日志记录?

AOP简介AOP(AspectOrientedProgramming),面相切面编程,是通过代码预编译与运行时动态代理的方式来实现程序的统一功能维护的方案。AOP作为Spring框架的核心内容,通...

取消回复欢迎 发表评论: