没有与此调用相匹配的重载。最后一个重载出现了以下错误。这就是我从Firebase函数中得到的错误
我为封闭的端点写了一段代码,用于特权路由,到中间件时一切正常,但当我试图使用该端点时,就会出现错误。
错误信息。
没有与此调用相匹配的重载。 最后一个重载出现了以下错误。 '(req: User, res: express.Response, next: express.NextFunction) => express.Response | Promise<void | express.Response>' 类型的参数不能分配给'PathParams'类型的参数。
这是我的代码
//controller.ts file
import { ProductModel } from "./model";
import * as express from "express";
import { endPoint } from "../../helpers/endpoint";
import { isAdmin } from "../../middlewares/middlewares";
const router = express.Router();
router
.use(endPoint, isAdmin)
.post("/admin/addProduct", (req: any, res: express.Response) => {
const obj = new ProductModel(req.user);
._create_product(req.body)
.then(() => {
return res
.status(201)
.json({ message: "New Product created successfully" });
.catch((err) => {
return res.status(404).json({ error: "Failed to create product", err });
export default router;
//endpoint.ts file
import { admin, db } from "../config/admin";
import * as express from "express";
interface User extends express.Request{
user:{
email:string,
uid:string
export const endPoint = (
req:User,
res: express.Response,
next: express.NextFunction
) => {
if (!req.headers && !req.headers["authorization"]) {
return res.status(404).json({ error: "UnAuthorised" });
} else {
const bearer: any = req.headers["authorization"];
const token: any = bearer.split("Bearer ")[1];
return admin
.auth()
.verifyIdToken(token)
.then((decoded) => {
console.log("decoded",decoded);
req.user.uid=decoded.uid
console.log("req.user",req.user.uid)
return db
.collection("USERS")
.where("uid", "==", req.user)
.limit(1)
.get();
.then((userData) => {
console.log(userData)
req.user.email= userData.docs[0].data().email
return next();
.catch((error) => {
console.error(error);
if (error.code === "auth/id-token-expired") {
return res.status(401).json({
message: `Token has expired please try again!!! with new Token`,