onHttpsCall, onHttpsRequest
Franklin Chieze edited this page Oct 15, 2020
·
2 revisions
onHttpsCall()
The onHttpsCall
decorator specifies that a function should be callable directly from a Firebase app.
onHttpsRequest(path: string = '/', options?: RequestOptions)
The onHttpsRequest
decorator specifies that a function should handle an HTTP request.
-
path
This is astring
parameter that represents an Express-style route path, like/users/:id
. -
options
This is an optionalRequestOptions
parameter for passing in extra data to the decorator.
class RequestOptions {
method?: RequestMethodType;
middleware?: typeof RequestMiddleware[];
}
class RequestMiddleware {
middleware(req, res, next) {}
}
type RequestMethodType = "delete" | "get" | "options" | "post" | "put"
import { func, onHttpsRequest } from 'firefuncs';
export class Records {
@func()
@onHttpsRequest()
public async hello(req, res) {
res.send('Hello World!');
}
@func()
@onHttpsRequest('/', {
method: 'post',
middleware: [InitMiddleware, AuthMiddleware]
})
public async save(req, res) {
try {
const db = req.firestore.db;
await db.collection('records').add({ ...req.body });
res.send('Added records successfully');
} catch (error) {
res.send({ error })
}
}
}
class AuthClientMiddleware {
async middleware(req, res, next) {
console.log('Authenticate the request here');
}
}
class InitMiddleware {
async middleware(req, res, next) {
console.log('Initialize the Firebase app here');
}
}
Note: A middleware is any class that has a method named
middleware
with the same signature as an Express middleware.