官网

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)
语言,图片识别等

价格

前期使用

  1. spark方案
    免费
    完全够用

  2. 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相关推荐

  1. .NET零基础入门之01:开篇及CSharp程序、解决方案的结构

    .NET零基础入门之01:开篇及CSharp程序.解决方案的结构 参考文章: (1).NET零基础入门之01:开篇及CSharp程序.解决方案的结构 (2)https://www.cnblogs.co ...

  2. 强化学习(Reinforcement Learning)入门学习--01

    强化学习(Reinforcement Learning)入门学习–01 定义 Reinforcement learning (RL) is an area of machine learning in ...

  3. 【Yocto学习入门】01 - Yocto简介

    [Yocto学习入门]01 - Yocto简介 一.什么是yocto? 二.openembedded,poky和yocto的关系 三.BitBake 是什么 四.yocto的工作流程 五.Yocto ...

  4. React 全家桶入门教程 01

    React 全家桶入门教程 01 前面是基础课程(难度小,略过),后面是案例 目的 巩固react基础知识,查漏补缺(熟悉的部分快进) 学习相关的库的使用 https://study.163.com/ ...

  5. Jmeter 入门 从0-1 基础篇-实操

    Jmeter 入门 从0-1 基础篇 笔记有的图片链接可能失效了,等我修改好了在来编辑哈 文章目录 1 JMeter 1.1 JMeter环境搭建和基本使用 1.1.1 JMeter环境搭建 1.1. ...

  6. 【mysql入门笔记01 2022.9.27】

    mysql入门笔记01 2022.9.27 数据库概念 数据库管理系统 关系型数据库(RDBMS) 非关系型数据库(NoSQL) SQL概念 Mysql 版本 Mysql安装 Mysql启动 方式一 ...

  7. 入门篇-01什么是微服务?

    入门篇-01什么是微服务? 01 | 单体应用 1.应用技术栈 1)早期为:LAMP(Linux+Apache+MySQL+PHP)和 MVC(Spring+iBatis/Hibernate+Tomc ...

  8. VAPS XT开发入门教程01:软件安装包

    本文首发于:VAPS XT开发入门教程01:软件安装包 上一篇:VAPS XT开发入门教程00:基本介绍 VAPS XT软件包括三个部分: 主程序,按照版本不同大小也不同,大概在800M~2GB左右 ...

  9. 【安全利器SELinux快速入门系列 | 01】SELinux基础入门

    这是机器未来的第35篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/125914553 文章目录 1. 研究目标 2. se ...

最新文章

  1. 微型计算机组成原理考试,全国高等教育自学考试计算机组成原理模拟试题
  2. 黄金——家家都应藏有的投资品(转载自新浪)
  3. 服务器上次文件命令,服务器上次文件命令
  4. Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc) (转载)
  5. c++怎么将两个类的方法集合成一个类的方法_一文帮你梳理 Java 集合
  6. 数字城市杭州执法管理平台测试计划【软件测试与工程】
  7. 2018 腾讯功能游戏开发者赛事火热开启
  8. FlightGear编译
  9. 用计算机指令 自动化测试 信号源,一种应用于铁路微机监测采集板的自动检测工装系统的制作方法...
  10. android的got表HOOK实现
  11. vue——常用的第三方插件安装合集(可详细了!持续更新)
  12. 如何按照滑环的原理来自制简易导电滑环
  13. 查看SqlServer数据库上面脚本修改信息以及修改日志
  14. 高三计算机教学计划,高三上学期教学教学计划集锦5篇
  15. 获取网页中的视频下载地址(利用抓包)
  16. 高新技术企业认定领域细分有几项
  17. 算法---程序的灵魂,没错就是灵魂!
  18. Android逆向工程-破解 哈皮妹-萝莉
  19. Android poi 根据已有模板生成新的doc文档
  20. android 获取apk资源,【Android开发】获取已安装应用的安装文件(apk文件)

热门文章

  1. 深度学习初学者推荐怎么在本地完成CS231n课程作业-配置环境
  2. html 如何去掉超链接下的下划线
  3. MSDN for VS2005
  4. 基于神经网络的滑模鲁棒控制
  5. 蓝桥杯嵌入式STM32G431——第九届省赛真题电子定时器
  6. Swagger接口测试工具。
  7. 大写字母与小写字母的转换
  8. 音视频基础知识-时间戳的理解
  9. xp下IIS500错误解决方案
  10. MySql InnoDB与MyISAM的区别