预计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登录 阅读教程
C# library for Firebase Authentication
C# library for Firebase Realtime Database.
Firebase的Express Server on Cloud功能在Cloud Functions for Firebase中托管Express Server。 这是随附的。TLDR; 将您的Express Server托管在Cloud Functions上,从而利用Firebase的出色开发经验,实现低成本,...
该软件包的主要功能是一种功能,它提供了一种更好的方法来自动导出Firebase Cloud Functions中的功能触发器。 这种方法几乎总是可以改善云功能的性能,内存使用率和冷启动时间,尤其是在大型项目中。 它还允许您的源...
final_project_firebase
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来
强大的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托管,在Cloud Functions for Firebase上托管Next.js SSR React应用。 这是随附的。正在撰写一篇新帖子,以描述新的项目结构,Firebase部分部署,Firebase对部署前/部署后挂钩的支持以及这些新功能解决...
Firebase缩短URL 这是一个演示如何使用Firebase动态链接API来构建缩短的URL应用程序。 目标: 简单的 快速地 快速地 直播: : 当地发展 ...firebase functions:config:set config.domain_uri_prefix=
具有Babel配置的Firebase功能可定位正确的执行环境 使用Babel定位针对Firebase的Cloud Functions的正确执行环境,并使用现代语言功能(ES6 +)进行开发。 这是随附的;TLDR; 在与默认./functions目录不同的目录中...
firebase-functions-test是Cloud Functions for Firebase的单元测试库。 它是的伴侣。 注意:此库只能与firebase-functions v2.0.0或更高版本一起使用。 学到更多 了解有关SDK 更多信息,或。 贡献 要做出改变,。...
立即使用ES6 +为Firebase开发Cloud Functions! 这是随附的。 TLDR; 在与默认./functions目录不同的目录中开发Coud Functions。 我建议./functionsES6 。 然后使用babel-cli , babel-preset-es2015和rimraf以及...
firebase-functions软件包提供了一个SDK,用于定义Firebase的云功能。 Cloud Functions是一个托管,私有且可扩展的Node.js环境,您可以在其中运行JavaScript代码。 用于云功能的Firebase SDK通过允许您编写可响应...