如何为 Angular-ShoppingCart 接入自己的 Firebase:认证、实时数据库与安全规则配置完整指南
如何为 Angular-ShoppingCart 接入自己的 Firebase认证、实时数据库与安全规则配置完整指南【免费下载链接】Angular-ShoppingCartShoppingCart (Ecommerce) Application using Angular10, Firebase, PWA, DragDrop, Materialized Bootstrap and i18n ‍项目地址: https://gitcode.com/gh_mirrors/an/Angular-ShoppingCartAngular-ShoppingCart 是一款基于 Angular 10 Firebase 的开源电商购物车应用内置用户认证、实时数据库商品管理、PWA 与拖拽排序。这篇新手向指南将手把手带你为自己的项目接入 Firebase从创建控制台项目、配置邮箱/密码与 Google 认证到导入实时数据库商品数据、编写安全规则最后跑通「注册 → 登录 → 浏览商品」的完整流程 这个应用用 Firebase 做了什么在动手之前先搞清楚 Firebase 在这个购物车里的三个角色配置时才不会抓瞎应用功能依赖的 Firebase 组件对应源码位置用户注册 / 登录邮箱密码、Google 弹窗Firebase Authenticationsrc/app/shared/services/auth.service.ts商品列表、管理员增删改查Realtime Databaseproducts节点src/app/shared/services/product.service.ts用户档案、管理员标记Realtime Databaseclients节点src/app/shared/services/user.service.ts页面访问拦截认证守卫 管理员守卫src/app/shared/guards/auth_gaurd.ts、src/app/shared/guards/admin-gaurd.ts准备工作克隆项目并安装依赖先确保本机装好了 Node.js 和 Angular CLI然后克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/an/Angular-ShoppingCart cd Angular-ShoppingCart npm install依赖安装完成后稍后随时可以用ng serve启动开发服务器浏览器打开http://localhost:4200/即可预览。第一步在 Firebase 控制台创建项目并获取配置打开 Firebase 控制台console.firebase.google.com点击创建项目填入项目名并确认。在项目概览页点击/ 网页应用图标给应用起个别名完成注册。注册成功后控制台会显示一段Web 应用配置信息包含apiKey、authDomain、databaseURL、projectId、storageBucket、messagingSenderId六个字段。把这六个字段原样填入项目里的配置文件 src/environments/firebase.config.ts替换掉尖括号占位符{ apiKey: YOUR_API_KEY, authDomain: YOUR_AUTH_DOMAIN, databaseURL: YOUR_DATABASE_URL, projectId: YOUR_PROJECT_ID, storageBucket: YOUR_STORAGE_BUCKETS, messagingSenderId: YOUR_MESSAGING_SENDER_ID }这份配置会在应用启动时被加载src/app/shared/shared.module.ts#L35 中的AngularFireModule.initializeApp(FireBaseConfig)就是它的入口同时引入了AngularFireAuthModule认证与AngularFireDatabaseModule实时数据库两个模块所以你只需要改这一个文件全局即可生效。第二步开启认证方式邮箱/密码 Google 登录购物车的登录页src/app/views/base/index/login/login.component.ts支持两种登录方式需要在控制台分别手动开启邮箱/密码进入Authentication → Sign-in method打开Email/Password开关。对应 src/app/shared/services/auth.service.ts#L80-L90 中的createUserWithEmailAndPassword和signInRegular。Google 登录在同一页面打开Google开关。启用时要求填写管理员邮箱若弹窗登录报 provider 错误请到Google 开发者控制台确认已把项目域名加入「已获授权的重定向 URI」。关于clients节点与管理员权限 ‍用户注册成功后src/app/shared/services/user.service.ts#L28-L36 的createUser会把邮箱、uid 等信息写入实时数据库的clients节点并默认带上isAdmin: false。若想让某个账号拥有「新增/编辑/删除商品」的管理员能力只需在控制台数据库里找到该用户手动把isAdmin改为true—— 登录时 src/app/shared/services/auth.service.ts#L31-L33 的isAdmin$就会识别它admin-gaurd.ts守卫随之放行管理页面。第三步创建实时数据库并导入商品数据在控制台左侧进入Realtime Database → 创建数据库选择就近的地区开发阶段可先选「已启用测试模式」。创建后databaseURL会自动出现在项目设置中回到上一步把配置文件里的databaseURL补全。把仓库根目录的商品数据 products.json 导入数据库的products节点在实时数据库页面点击右上角导出 JSON旁的粘贴 JSON / 导入粘贴文件内容后根节点选择products。导入成功后你的数据库结构应与下图一致products节点下每条商品一个自动生成的 ID每条商品的字段含义如下导入自己的数据时请保持字段名一致字段含义productName/productPrice商品名称 / 价格productCategory/productSeller分类 / 品牌品牌筛选管道 filterByBrand.pipe.ts 依赖它productQuatity库存数量注意源码中此字段拼写如此请原样保留productImageUrl/ratings商品图片 URL / 评分前端读取入口在 src/app/shared/services/product.service.ts#L26-L29this.db.list(products)订阅的就是这个节点数据变更会自动推送到页面无需轮询。第四步配置安全规则先跑通再加固开发调试阶段建议在Database → Rules使用项目 README 中给出的宽松规则确保本地能读写{ rules: { .read: true, .write: true } }⚠️上线前务必收紧。.write: true意味着任何人可改你的商品数据。生产环境推荐至少要求登录认证{ rules: { .read: auth ! null, .write: auth ! null } }进一步可按节点细化例如只有管理员clients节点里auth.uid对应isAdmin为 true才能写products{ rules: { clients: { .read: auth ! null }, products: { .read: true, .write: auth ! null /clients/$auth.uid/isAdmin true } } }规则改动即时生效改完可以直接刷新页面验证无需重新构建。跑起来验证登录与商品列表全流程ng serve按以下清单逐项验证全部通过说明你的 Firebase 接入成功 首页正常加载商品横幅说明实时数据库连通。弹窗注册一个邮箱账号到控制台clients节点能看到新用户记录isAdmin: false。退出后重新登录页面能正常恢复登录态认证守卫 auth_gaurd.ts#L11-L20 放行。把该用户isAdmin改为true重新登录可以进入商品管理页新增商品列表实时刷新。新手最容易卡住的 5 个问题排查现象常见原因解决办法首页空白、控制台报 Firebase 错误配置六个字段抄错、多空格或databaseURL为空对照控制台重新复制确认已创建实时数据库Google 登录弹窗报错未开启 Google 方式或未添加授权域名控制台开启 Sign-in method到 Google 开发者后台补授权 URI注册成功但没有登录态邮箱/密码方式未开启开启 Email/Password 并保存商品页提示未找到商品products节点为空或导入到了错误层级检查节点名必须是products且与 JSON 根节点对齐部署后突然 401 / 无权限规则被收紧但前端未登录规则改为auth ! null前先确保登录流程可用至此你已经完成了 Angular-ShoppingCart 的 Firebase 完整接入认证、实时数据库与安全规则三大件全部就位。接下来可以顺着 src/app/shared/services/auth.service.ts 和 src/app/shared/services/product.service.ts 阅读源码理解 AngularFire 的响应式订阅是如何驱动整个购物车界面实时更新的 【免费下载链接】Angular-ShoppingCartShoppingCart (Ecommerce) Application using Angular10, Firebase, PWA, DragDrop, Materialized Bootstrap and i18n ‍项目地址: https://gitcode.com/gh_mirrors/an/Angular-ShoppingCart创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SkinLayer Studio:图层化蒙皮工作流,4.5天变1天的效率革命

SkinLayer Studio:图层化蒙皮工作流,4.5天变1天的效率革命

你有没有过这样的经历:在3ds Max里,对着一个高精度角色模型,一坐就是好几天,鼠标在密密麻麻的顶点权重上反复涂抹、修正、平滑,只为让骨骼的每一次弯曲都显得自然流畅?蒙皮,这个连接模型与动画的…

2026/8/24 11:07:16 阅读更多 →
Docker部署Nginx全攻略:从容器化原理到实战配置

Docker部署Nginx全攻略:从容器化原理到实战配置

这次我们来看一个非常实用的技术组合:用 Docker 部署 Nginx。对于开发者、运维或者任何需要快速搭建 Web 服务的人来说,这几乎是必备技能。它的核心价值在于,通过 Docker 的容器化技术,你可以用一条命令就获得一个干净、隔离、可复…

2026/8/24 11:07:16 阅读更多 →
Math500 从 76 到 94:slime 知识蒸馏 OPD 实战

Math500 从 76 到 94:slime 知识蒸馏 OPD 实战

Math500 从 76 到 94:slime 知识蒸馏 OPD 实战 【免费下载链接】slime slime is an LLM post-training framework for RL Scaling. 项目地址: https://gitcode.com/GitHub_Trending/slime12/slime 大教师模型推理又贵又慢,没法直接端上生产。slim…

2026/8/24 11:07:15 阅读更多 →

最新新闻

【非标自动化】2、认识元器件(调压阀)

【非标自动化】2、认识元器件(调压阀)

调压阀这里的调压阀,指的是气动系统中的空气减压阀/压力调节阀。它通常安装在气源处理组件中,用来把上游较高、存在波动的压缩空气压力,降低并稳定在设备需要的工作压力。例如:工厂气源压力:0.7 MPa 设备需要压力&…

2026/8/24 12:46:40 阅读更多 →
西门子PLC程序模拟入门:TIA Portal与S7-PLCSIM实战指南

西门子PLC程序模拟入门:TIA Portal与S7-PLCSIM实战指南

1. 项目概述:为什么我们需要模拟PLC程序? 如果你刚接触西门子PLC编程,或者正在学习一个新的控制逻辑,最头疼的事情是什么?我猜很多人会说是“没有硬件”。一台西门子S7-1200或S7-1500的实体PLC价格不菲,更别…

2026/8/24 12:46:40 阅读更多 →
【非标自动化】2、认识元器件(节流阀)

【非标自动化】2、认识元器件(节流阀)

节流阀节流阀是一种通过改变空气流通截面积,限制压缩空气流量的气动元件。在非标自动化设备中,节流阀最常见的用途是控制气缸的运动速度。可以先记住:调压阀:主要调压力,影响气缸推力 节流阀:主要调流量&am…

2026/8/24 12:46:40 阅读更多 →
Is GraphRAG Needed?From Basic RAG to Graph-/Agentic Solutions with Context Optimization是否需要 GraphRAG

Is GraphRAG Needed?From Basic RAG to Graph-/Agentic Solutions with Context Optimization是否需要 GraphRAG

这篇文章的核心是系统性地评估了不同RAG架构在半结构化知识库上的表现,并回答了"何时以及如何使用GraphRAG和Agentic RAG"这一关键问题。以下是全面总结: 一、研究背景与问题 传统RAG在处理半结构化知识库(同时包含文本和实体关系…

2026/8/24 12:46:40 阅读更多 →
Continue插件 JetBrains 上手指南:5 分钟跑通一个编码循环

Continue插件 JetBrains 上手指南:5 分钟跑通一个编码循环

Continue插件 JetBrains 上手指南:5 分钟跑通一个编码循环 【免费下载链接】continue open-source coding agent 项目地址: https://gitcode.com/GitHub_Trending/co/continue 在 IntelliJ IDEA 里接手遗留服务,对开发者来说都磨人:读…

2026/8/24 12:46:40 阅读更多 →
基于DeepSeek API的AI字幕翻译实战:从SRT解析到视频封装全流程

基于DeepSeek API的AI字幕翻译实战:从SRT解析到视频封装全流程

最近在整理经典动画资源时,发现很多朋友对《万能战士无比敌》(又名《无敌侠》)这部1980年的老动画情有独钟,但苦于找不到高质量的中文字幕版本。网上流传的英文字幕文件,对于想重温童年回忆或初次接触的观众来说&#…

2026/8/24 12:45:40 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →