相关文章推荐
温暖的八宝粥  ·  Disable cursor ...·  1 年前    · 
深沉的黑框眼镜  ·  c# - ...·  1 年前    · 
霸气的跑步机  ·  android - 'Method ...·  1 年前    · 

没有与此调用相匹配的重载。最后一个重载给出了以下错误。 在使用Typescript编写Firebase函数时

0 人关注

没有与此调用相匹配的重载。最后一个重载出现了以下错误。这就是我从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`,