Firebase入门使用 01
官网
firebase.google.com
解决问题
firebase 帮助解决 数据库 和 API之间的问题
这样我们就可以 集中精力开创应用。
快速上手样例指南
https://github.com/firebase
提供的服务
其中80%用不到,下面是一些我们可以用到的服务。
Authentication:用户认证管理
多平台单点登录
CLoud Firestore: NoSql数据库服务
移动端多实用nosql服务
Realtime Database:实时存储并同步数据(旧版)
Storage:云存储服务(文件,图片等)
文件存储功能,帮助存储 用户上传的图片和视频,类似AWS中的S3
Hosting:网站托管服务(静态,动态)
上传网页,仅仅是HTML的静态网页服务
Functions:服务区托管代码服务
用于响应用户的输入
Machine Learning:机器学习产品(Beta)
语言,图片识别等
价格
前期使用
spark方案
免费
完全够用blaze方案
收费
客户端支持
i0S/Android
WebApp (React, Vue, Angular) Node.js
Python
Go
C++
Unity
安装Firebase命令行工具
sudo npm install -g firebase-tools
安装Firebase Admin SDK
Firebase Admin SDK
登录firebase tool工具
firebase login
列举当前工程
firebase projects:list
创建项目
进入控制台
https://firebase.google.com/?hl=zh-cn
给项目 起个名字
在analytics 建一个账号,然后再在里面建多个媒体
先建一个云端数据库
在里面加入数据
再用管理包链接数据库
显示数据
下面是创建好的数据库
插入数据
回到项目设置
改个名字
找到 客户端访问firebase的私钥并下载
打开 mac 终端 terminal
创建文件夹并进入
mkdir myfirebase
cd myfirebase
初始化目录
npm init -y
为nodeJS安装firebase管理包
npm install firebase-admin --save
创建 一个js文件
尝试引用firebase数据库中数据
创建文件
nano main.js
在里面输入
var admin = require('firebase-admin');
然后保存退出
运行文件
node main.js
打开之前下载下来的私钥文件
将其 移动到 当前文件夹里面
下面是因为 mac默认下载但download
当前路径默认在 firebase文件夹内的情况下
使用cp命令 直接 拷贝
打开 js文件
修改 秘钥文件所处的路径
// 把私钥读进来
// 用firebase管理包进行初始化
var admin = require('firebase-admin');
var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");
admin.initializeApp({creadential: admin.credential.cert(serviceAccount),
});var defaultProjectManagement = admin.projectManagement();
console.log(defaultProjectManagement)
保存然后再次在终端执行
node main.js
说明连接上了,并且显示了project的相关内容
提取之前创建的数据
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount)
});// var defaultProjectManagement = admin.projectManagement();
// console.log(defaultProjectManagement)let db = admin.firestore();
db.collection('users').get().then((snapshot) => {snapshot.forEach((doc) => {console.log(doc.id,'=>',doc.data());});}).catch((err) => {console.log('Error getting documents', err);});
Hosting 主机托管服务
快速建立一个网站
使用主机托管服务 托管一个网站
创建自己的web先
等下再回去hosting
随便搞个名字
在本地电脑上,创建文件夹,并在文件夹内完成firebase的web初始化
mkdir myweb
cd myweb
npm init -y
firebase init
选择自己想要的相应的配置
空格 表示 选中
enter 表示 确认
下面注意选择了 两个绿色的
一个hosting 主机托管服务
一个emulators 本地模拟服务
这里public 作为 主目录
以后 这个public 就会向 firebase 上传
理解: 这个public 就是 以后 web的 根目录。
配置一个本地模拟器
下面狂敲enter 都默认就可以
配置完成后,检查目录,发现生成两个配置文件
一个是 工程文件
一个是 工程描述文件
使用cat查看内容
firebaserc
主机服务 和 模拟器
模拟器是为了 本地模拟firebase服务器环境,调试
进入public
cd public
里面有 默认生成的 index.html文件
我们不用,给其更名
我们自己建一个新的
后面需要其他服务
都在analytics下面增加
这些服务的js文件在
https://firebase.google.com/docs/web/setup#avaiLable-Libraries
查询
在当前目录创建index.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Hello Firebase from Koma!</title></head><body><h1>Hello Firebase from Koma!</h1><script src="/__/firebase/8.2.2/firebase-app.js"></script><script src="/__/firebase/8.2.2/firebase-analytics.js"></script><script src="/__/firebase/init.js"></script><script>let analytics = Firebase.analytics();// 记载一个页面事件analytics.logEvent('homepage_content', {content_type:'homepage',content_id:'P1',items: [{ name: 'homepage/index' }]});</script></body>
</html>
回到上一级
cd ..
在本地run一下网站
firebase serve --only hosting --project=default
网页访问
运行成功后,部署上线
首先在键盘上按 control + C 退出本地运行服务
然后部署
firebase deploy --project=default
这里如果有多个 project的话,需要告诉firebase,我们默认要部署的projectID是哪一个
首先,通过
firebase projects:list
找到目前拥有的所有project
然后通过
firebase <my command> --project=<my project ID>
实际操作如下图所示,设置自己要默认部署的project
然后再执行
firebase deploy --project=default
使用数据库服务 Cloud Firestore
具体内容
建立noSql数据库
通过Nod.js接口访问数据库
重复前面 创建项目部分
创建文件夹
初始化
npm init -y
npm install firebase-admin --save
创建main.js
文件
增删查改
使用node.JS写的
自己分开 注释,理解
不要直接run
// 把私钥读进来
// 用firebase管理包进行初始化var admin = require("firebase-admin");var serviceAccount = require("./fir-2aa30-firebase-adminsdk-qsuhb-e553450ef4.json");admin.initializeApp({credential: admin.credential.cert(serviceAccount)
});// var defaultProjectManagement = admin.projectManagement();
// console.log(defaultProjectManagement)
// 数据库对象
let db = admin.firestore();// 服务器时间戳
const FieldValue = admin.firestore.FieldValue;// // 1. 下面是增加数据
// // 这里是调用函数
// addData()
// // 添加数据// // 这里是定义函数
// async function addData() {// // 循环 5次, 往 users 文档中 添加5条数据
// for (i = 1; i <= 5; i++) {// const res = await db.collection('users').add({// name: '用户' + i,
// sex: i % 2 == 0 ? '男' : '女',
// regdate: FieldValue.serverTimestamp()
// });
// console.log('Added document with ID: ', res.id);
// }
// }// // 2. 下面是读取数据
// getData()
// async function getData() {// // 把所有数据都读出来
// await db.collection('users').get()
// .then((snapshot) => { // 循环 取到 每个文档id
// snapshot.forEach((doc) => {// console.log(doc.id, '=>', doc.data()); // 每个文档使用data方法取到所有内容
// });
// })
// .catch((err) => {// console.log("Error getting documents", err);
// });
// }// 3. 更新数据内容
// upData()// async function upData(){// // doc后面是写数据的id,需要在firebase数据库中查看,每个人不一样,不要抄我的,下面删除类似
// const userRef = db.collection('users').doc('5ER15LHG0fOrh5pztxVj');
// const res = await userRef.update({// age: 999,
// update: FieldValue.serverTimestamp()
// });
// }// 4. 删除数据
delData()
async function delData() {let deleteDoc = db.collection('users').doc('5ER15LHG0fOrh5pztxVj').delete();console.log(deleteDoc);
}// db.collection('users').get()
// .then((snapshot) => {// snapshot.forEach((doc) => {// console.log(doc.id,'=>',doc.data());
// });
// })
// .catch((err) => {// console.log('Error getting documents', err);
// });
Firebase入门使用 01相关推荐
- .NET零基础入门之01:开篇及CSharp程序、解决方案的结构
.NET零基础入门之01:开篇及CSharp程序.解决方案的结构 参考文章: (1).NET零基础入门之01:开篇及CSharp程序.解决方案的结构 (2)https://www.cnblogs.co ...
- 强化学习(Reinforcement Learning)入门学习--01
强化学习(Reinforcement Learning)入门学习–01 定义 Reinforcement learning (RL) is an area of machine learning in ...
- 【Yocto学习入门】01 - Yocto简介
[Yocto学习入门]01 - Yocto简介 一.什么是yocto? 二.openembedded,poky和yocto的关系 三.BitBake 是什么 四.yocto的工作流程 五.Yocto ...
- React 全家桶入门教程 01
React 全家桶入门教程 01 前面是基础课程(难度小,略过),后面是案例 目的 巩固react基础知识,查漏补缺(熟悉的部分快进) 学习相关的库的使用 https://study.163.com/ ...
- Jmeter 入门 从0-1 基础篇-实操
Jmeter 入门 从0-1 基础篇 笔记有的图片链接可能失效了,等我修改好了在来编辑哈 文章目录 1 JMeter 1.1 JMeter环境搭建和基本使用 1.1.1 JMeter环境搭建 1.1. ...
- 【mysql入门笔记01 2022.9.27】
mysql入门笔记01 2022.9.27 数据库概念 数据库管理系统 关系型数据库(RDBMS) 非关系型数据库(NoSQL) SQL概念 Mysql 版本 Mysql安装 Mysql启动 方式一 ...
- 入门篇-01什么是微服务?
入门篇-01什么是微服务? 01 | 单体应用 1.应用技术栈 1)早期为:LAMP(Linux+Apache+MySQL+PHP)和 MVC(Spring+iBatis/Hibernate+Tomc ...
- VAPS XT开发入门教程01:软件安装包
本文首发于:VAPS XT开发入门教程01:软件安装包 上一篇:VAPS XT开发入门教程00:基本介绍 VAPS XT软件包括三个部分: 主程序,按照版本不同大小也不同,大概在800M~2GB左右 ...
- 【安全利器SELinux快速入门系列 | 01】SELinux基础入门
这是机器未来的第35篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/125914553 文章目录 1. 研究目标 2. se ...
最新文章
- 微型计算机组成原理考试,全国高等教育自学考试计算机组成原理模拟试题
- 黄金——家家都应藏有的投资品(转载自新浪)
- 服务器上次文件命令,服务器上次文件命令
- Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc) (转载)
- c++怎么将两个类的方法集合成一个类的方法_一文帮你梳理 Java 集合
- 数字城市杭州执法管理平台测试计划【软件测试与工程】
- 2018 腾讯功能游戏开发者赛事火热开启
- FlightGear编译
- 用计算机指令 自动化测试 信号源,一种应用于铁路微机监测采集板的自动检测工装系统的制作方法...
- android的got表HOOK实现
- vue——常用的第三方插件安装合集(可详细了!持续更新)
- 如何按照滑环的原理来自制简易导电滑环
- 查看SqlServer数据库上面脚本修改信息以及修改日志
- 高三计算机教学计划,高三上学期教学教学计划集锦5篇
- 获取网页中的视频下载地址(利用抓包)
- 高新技术企业认定领域细分有几项
- 算法---程序的灵魂,没错就是灵魂!
- Android逆向工程-破解 哈皮妹-萝莉
- Android poi 根据已有模板生成新的doc文档
- android 获取apk资源,【Android开发】获取已安装应用的安装文件(apk文件)