Firebase Local Emulator Suite详解

在这里插入图片描述

文章目录

  • Firebase Local Emulator Suite 组件
  • 安装和使用步骤
    • 1. 安装 Firebase CLI
    • 2. 初始化 Firebase 项目
    • 3. 配置模拟器
    • 4. 启动模拟器
    • 5. 配置应用程序使用本地模拟器
  • 常见用途

Firebase Local Emulator Suite 是一组本地服务,可以模拟 Firebase 平台的在线服务,帮助开发者在本地环境中开发和测试应用程序,而不必依赖实时的 Firebase 项目。以下是关于 Firebase Local Emulator Suite 的详细介绍及其使用方法。

Firebase Local Emulator Suite 组件

  1. Authentication Emulator:模拟 Firebase Authentication,用于测试用户身份验证。
  2. Firestore Emulator:模拟 Cloud Firestore 数据库。
  3. Realtime Database Emulator:模拟 Firebase Realtime Database。
  4. Storage Emulator:模拟 Firebase Storage。
  5. Hosting Emulator:模拟 Firebase Hosting 环境。
  6. Functions Emulator:模拟 Cloud Functions for Firebase。
  7. Pub/Sub Emulator:模拟 Google Cloud Pub/Sub。

安装和使用步骤

1. 安装 Firebase CLI

首先确保安装了 Firebase CLI。如果尚未安装,请运行以下命令:

npm install -g firebase-tools

2. 初始化 Firebase 项目

在项目根目录下运行以下命令:

firebase init

选择要初始化的 Firebase 功能,并确保选择 “Emulators” 以启用本地模拟器。

3. 配置模拟器

在初始化过程中,选择你要使用的模拟器,例如 Firestore、Functions 等。初始化完成后,Firebase 会生成一个 firebase.json 配置文件,其中包含模拟器的配置。

4. 启动模拟器

在项目根目录下运行以下命令以启动所有配置的模拟器:

firebase emulators:start

你将看到类似如下的输出:

✔  All emulators ready! It is now safe to connect your app.

┌────────────────┬────────────────────────────────┐
│ Emulator       │ Host:Port                      │
├────────────────┼────────────────────────────────┤
│ Authentication │ localhost:9099                 │
│ Firestore      │ localhost:8080                 │
│ Functions      │ localhost:5001                 │
│ Hosting        │ localhost:5000                 │
│ Pub/Sub        │ localhost:8085                 │
│ Storage        │ localhost:9199                 │
└────────────────┴────────────────────────────────┘

┌────────────────┬────────────────────────────────┐
│ View Emulator  │ http://localhost:4000          │
└────────────────┴────────────────────────────────┘

这些是本地模拟器的地址和端口,可以在浏览器中打开 http://localhost:4000 查看模拟器套件的控制面板。

5. 配置应用程序使用本地模拟器

你需要将你的应用程序配置为使用本地模拟器。例如,使用 Firebase SDK 时,可以如下配置 Firestore 和 Authentication:

import firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/auth';

// 初始化 Firebase
const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_PROJECT_ID.appspot.com",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

firebase.initializeApp(firebaseConfig);

// 使用本地模拟器
if (window.location.hostname === 'localhost') {
  firebase.firestore().useEmulator('localhost', 8080);
  firebase.auth().useEmulator('http://localhost:9099');
}

常见用途

  1. 开发和测试:在本地开发和测试 Firebase 应用程序,无需每次更改都部署到云端。
  2. 集成测试:使用本地模拟器进行端到端集成测试,确保所有组件正常工作。
  3. 离线开发:即使没有网络连接,也能继续开发和测试应用程序。

结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/663408.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《C语言深度解剖》(18):“取整”、“取余“” 和 “取模”的关联与区别?

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多C语言深度解剖点击专栏链接查看&…

word-简历排版

1、确认字体(微软雅黑)、字号(五号/小五) 2、设置段间距和行间距、页边距 3、突出各模块标题,增加分格线 4、使用制表位进行对齐:视图-标尺,制表符(tab)和制表位共同使…

我喜欢的vscode插件

有个更全的:提高编程效率的30个VScode插件 Image preview(图片预览) any-rule(正则表达式大全) px to rem & rpx & vw(cssrem)(px和rem之间转换) 小程序开发助手 Auto Close Tag A…

【C语言】探索文件读写函数的全貌

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 🔥引言 本章将介绍文件读取函数的相关知识和展示使用场景&am…

电脑设置密码怎么设置?让你的电脑更安全!

在如今信息化的社会中,保护个人电脑的安全至关重要。设置密码是最基本的电脑安全措施之一,它可以有效防止未经授权的访问和保护个人隐私,可是电脑设置密码怎么设置?本文将介绍三种设置电脑密码的方法,帮助您加强电脑的…

MySQL增删查改初阶

目录 一,数据库操作 1.关键字 show 显示当前数据库有哪些:show databases; 2.创建数据库 3.选中数据库 4.删除数据库 二,表的操作,在选中数据库的基础之上 1.查看表的结构 2.创建表 3.查看当前选中的数据库中…

docker目录挂载失败:Check if the specified host path exists and is the expected type

docker目录挂载失败:Check if the specified host path exists and is the expected type docker目录挂载命令,其目的是为了达到修改linux上的文件同步到容器上,从而实现修改容器的配置文件。 在docker目录挂载或启动容器时报错&#xff0c…

C# :IQueryable IEnumerable

1. IEnumerable namespace System.Collections: public interface IEnumerable {public IEnumerator GetEnumerator (); }public interface IEnumerator {pubilc object Current { get; }public bool MoveNext ();public void Reset (); }IEnumerable 只有一个方法 GetEnumera…

【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(1)

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

UE5 Http Server

前言 最近要用UE 作为一个服务器去接收来自外部的请求,从而在UE中处理一些内容,但是之前只做过请求,哪整过这玩意,短期内还得出结果,那怎么搞嘞,本着省事的原则就找找呗,有没有现成的&#xff0…

2020 6.s081——Lab5:Lazy page allocation

再来是千年的千年 不变是眷恋的眷恋 飞越宇宙无极限 我们永不说再见 ——超兽武装 完整代码见:SnowLegend-star/6.s081 at lazy (github.com) Eliminate allocation from sbrk() (easy) 顾名思义,就是去掉sbrk()中调用growproc()的部分。1s完事儿。 Laz…

两数之和 II - 输入有序数组,三数之和

题目一&#xff1a; 代码如下&#xff1a; vector<int> twoSum(vector<int>& numbers, int target) {int left 0;int right numbers.size() - 1;vector<int> ret;while (left < right){int tmp numbers[left] numbers[right];if (tmp target){r…

Mac OS 用户开启 80 端口

开启端口 sudo vim /etc/pf.conf # 开放对应端口 pass out proto tcp from any to any port 8080 # 刷新配置文件 sudo pfctl -f /etc/pf.conf sudo pfctl -e获取本机ip地址 ifconfig en0 | grep inet | grep -v inet6 | awk {print $2}访问指定端口

栈和队列题目练习

本节小编选了两道题来加深对栈和队列的认识理解&#xff01; 有效的括号 方法1&#xff1a;直接用栈的结构&#xff08;动态数组&#xff09; 本题可以用栈这个结构来解答&#xff0c;将(,{,[ 左括号压入栈中&#xff0c;然后取出栈顶元素与右括号),},]匹配。不匹配的话&…

【成品设计】基于STM32的智能婴儿床设计

《基于STM32的智能婴儿床设计》 所需器件&#xff1a; 主控&#xff1a;STM32F103C8T6最小系统板。OLED屏幕&#xff1a;显示系统状态等。按键&#xff1a;自动模式和遥控模式切换 。180度舵机模块&#xff1a;通过0度~90度之间摆动模拟婴儿床的摆动。360度舵机模块&#xff…

为什么要使用动态代理IP?

一、什么是动态代理IP&#xff1f; 动态代理IP是指利用代理服务器来转发网络请求&#xff0c;并通过不断更新IP地址来保护访问者的原始IP&#xff0c;从而达到匿名访问、保护隐私和提高访问安全性的目的。动态代理IP在多个领域中都有广泛的应用&#xff0c;能够帮助用户…

函数调用之栈平衡

一&#xff0c;前言 如约而至&#xff0c;献上c/c在调用函数过程中关于栈平衡的心得&#xff0c;帮助大家了解内存中关于栈空间的分配过程&#xff08;ps:栈平衡通常也被说成堆栈平衡&#xff09;&#xff1b; 话不多说&#xff0c;下面以函数 int __cdecl GetResult(int uPa…

【康耐视国产案例】AI视觉相机创新 加速商超物流数智化转型

连锁商超/零售店正面临着因消费者购物习惯改变等挑战&#xff0c;迎来了以新兴技术崛起而催生的数字化物流体系转型需求。物流行业与AI机器视觉的深度融合&#xff0c;解决了传统机器视觉识别速度慢、环境要求高、定制化部署耗时过多等痛点&#xff0c;大大提高了物流供应链的效…

NPDP(New Product Development Professional)

NPDP&#xff08;New Product Development Professional&#xff09; NPDP考试介绍 NPDP证书介绍

邮件大附件发送失败影响业务?看看500强企业是如何解决的

邮箱业务往来对于企业来说是最常见的&#xff0c;因为其便捷性和普遍性&#xff0c;沟通使用成本也是最低的&#xff0c;在多种邮箱中&#xff0c;Outlook邮箱因其专业简洁的使用体验&#xff0c;在全世界范围内被企业广泛使用。 企业邮箱业务往来少不了附件的使用&#xff0c;…