预计SCR文档结构如下:
/SRC
-*ModuleA
--index.ts
-*ModuleB
--index.ts
-*Usgers
--index.ts
--users.ts
--api_v1.ts
--index.ts
SRC/ModuleA/index.ts
import { Router } from "express";
const router = Router();
export default router;
SRC/ModuleB/index.ts
import { Router } from "express";
const router = Router();
export default router;
SRC/Usgers/index.ts
import { Router } from "express";
var functions = require("firebase-functions");
const router = Router();
//Added by Jacky
const strTestData = "{name:test}";
//Init the session to the target firbease project
var admin = require("firebase-admin");
var serviceAccount = require("../../Res/multimanagementsystem.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: `https://${serviceAccount.project_id}-default-rtdb.firebaseio.com`
});
const db = admin.firestore();
//
router.get('/', async(request, response) => {
response.json("User's root url");
});
router.get('/getUsers', async(request, response) => {
//Sample URL:/managmentapi/v1/users/getUsers?id=111&name=2222
if (request.query != null)
response.send(request.query);
else
response.json( {strTestData} );
});
async function writeDBFunction() {
const docRef = db.collection('users').doc('alovelace');
await docRef.set({
first: 'Ada',
last: 'Lovelace',
born: 1815
});
}
router.get('/writeDB', async(request, response) => {
writeDBFunction();
response.send("Succeed to write DB!");
});
async function readDBFunction() {
const snapshot = await db.collection('users').get();
functions.logger.info(snapshot, {structuredData: true});
}
router.get('/readDB', async(request, response) => {
readDBFunction();
response.send("Succeed to read DB!");
});
router.get('/getUser/:id/:name', async(request, response) => {
//Sample URL:/managmentapi/v1/users/getUser/id111/name2222
functions.logger.info("Param[id]=" + request.params.id + " Param[name]=" + request.params.name);
const user = db.collection('users').doc(request.params.id);
const doc = user.get();
if (!doc.exists) {
console.log('No such document!');
} else {
console.log('Document data:', doc.data());
}
response.json(request.params.id + request.params.name);
});
export default router;
SRC/Usgers/users.ts
/*
//TODO the class according to related database shcema
export class Users {
params: any;
}
export const users = new Users;
*/
SRC/api_v1.ts
import { Router } from "express";
import router_moduleA from './ModuleA';
import router_moduleB from './ModuleB';
import router_users from './users';
const router = Router();
router.use('/ModuleA', router_moduleA);
router.use('/ModuleB', router_moduleB);
router.use('/users', router_users);
export default router;
SRC/index.ts
var functions = require("firebase-functions");
const express = require('express');
const cors = require('cors');
const app = express();
//root dir of current apis
import api_v1 from './api_v1';
// Automatically allow cross-origin requests
app.use(cors({ origin: true }));
// Add middleware to authenticate requests
//Main router of current backend system
app.use('/v1', api_v1);
//Added by Jacky
app.get('/getCurVersion', async(req, res) => {
res.json("01.0001.20210315" );
})
// build multiple CRUD interfaces:
app.get('/', async(req, res) => {
res.send("");
});
app.get('/*', async(req, res) => {
res.send("");
});
/*
app.post('/', async(req, res) => {
res.send('create()');
});
app.put('/:id', async(req, res) => {
res.send(req.params.id + req.body);
});
app.delete('/:id', async(req, res) => {
res.send(req.params.id);
});
*/
// Expose Express API as a single Cloud Function:
exports.managmentapi = functions.https.onRequest(app);
分享到:
相关推荐
firebase-ionic-login-sample, 使用Firebase和离子的社交登录的示例应用 使用离子进行 Firebase登录 阅读教程
Firebase的Express Server on Cloud功能在Cloud Functions for Firebase中托管Express Server。 这是随附的。TLDR; 将您的Express Server托管在Cloud Functions上,从而利用Firebase的出色开发经验,实现低成本,...
标题 "C# library for Firebase Authentication.zip" 暗示了我们正在讨论的是一个使用C#编写的库,目的是为了与Firebase的Authentication服务进行交互。Firebase是Google提供的一个全面的后端开发平台,其中包括身份...
该软件包的主要功能是一种功能,它提供了一种更好的方法来自动导出Firebase Cloud Functions中的功能触发器。 这种方法几乎总是可以改善云功能的性能,内存使用率和冷启动时间,尤其是在大型项目中。 它还允许您的源...
**Node.js与Firebase Functions结合应用详解** 在现代Web开发中,Node.js以其高效的非阻塞I/O模型和JavaScript全栈开发能力受到了广泛欢迎。而Firebase,Google提供的一个全面的后端开发平台,提供了实时数据库、...
var database = new RealtimeDatabase("https://your-firebase-project.firebaseio.com/"); var reference = database.GetReference("your/data/path"); // 写数据 reference.Set("Hello, Firebase!"); // 读数据 ...
Firebase Functions 是 Firebase 平台的一部分,它允许开发者在云端运行代码,无需管理服务器。这个功能是基于事件驱动的,也就是说,你的代码会在特定的 Firebase 服务事件触发时执行,如数据库更改、存储文件操作...
**Firebase Functions API 示例应用概述** Firebase Functions 是 Google Firebase 平台的一部分,它允许开发者编写运行在云端、按需触发的代码片段,也被称为无服务器函数。这个示例应用结合了 Firebase Functions...
【final_project_firebase】是一个基于HTML的项目,很可能是一个使用Firebase技术构建的Web应用程序的最终项目。Firebase是Google提供的一款全面的后端开发平台,它为开发者提供了构建实时、云托管的应用程序所需的...
npm i koa-firebase-functions --save 用法 const koaFirebase = require ( 'koa-firebase-functions' ) ; const koa = require ( 'koa' ) , app = koa . app ( ) ; app . use ( async ctx => { ctx . body = '...
将您的GraphQL服务器托管在Cloud Functions上,从而利用GraphQL在Firebase的甜美,甜美的开发人员经验下,在低成本,自动扩展的Web服务器上进行快速开发。 Cloud Functions可以接受,因此可以利用Apollo pacakge来
在开发 Arielandphebe 婚礼应用程序的过程中,Firebase Functions 被用作后端服务,为客户端提供了高效且可扩展的功能。Firebase Functions 是 Google Cloud Platform 的一部分,它允许开发者编写响应特定事件的代码...
强大的Firebase功能片段这里包含我编写Firebase函数所涉及的所有作品为了使用此功能,您应该知道如何创建和部署Firebase函数。 如果没有,请阅读CI / CD其他CSV或JSON代码将获得HTTP请求,并返回用户所需的JSON或CSV...
Firebase示例库的云功能 该存储库包含一些样本集合,这些样本展示了一些典型用法。 所有示例都使用Node 12运行时,并需要...要查看,尝试并查看,以了解如何开始使用Cloud Functions for Firebase。 样品概述 该存储库
Firebase Services4.0.0 下载 Fulfillment defines your ... With Cloud Functions for Firebase, your Action's fulfillment is hosted as an HTTP web service, making deployment and maintenance quick and easy.
npm install firebase-functions-helper 从Firebase获取Google Cloud帐户凭据 您可以从项目设置”中生成新的私钥。 之后,您需要复制databaseURL以启动应用程序。 用法 例子 这是执行任何其他操作之前需要执行的第...
Firebase Functions TypeScript入门 在TypeScript中创建和测试Firebase Cloud Functions。 该入门程序允许您在TypeScript中创建和测试Firebase Cloud Functions 。 获取。 内容 1项目结构 功能: 函数的src文件夹...
firebase_unity_sdk_11.6.0版本firebase_unity_sdk_11.6.0版本firebase_unity_sdk_11.6.0版本firebase_unity_sdk_11.6.0版本firebase_unity_sdk_11.6.0版本firebase_unity_sdk_11.6.0版本firebase_unity_sdk_11.6.0...
通过Firebase托管,在Cloud Functions for Firebase上托管Next.js SSR React应用。 这是随附的。正在撰写一篇新帖子,以描述新的项目结构,Firebase部分部署,Firebase对部署前/部署后挂钩的支持以及这些新功能解决...