skip to Main Content

I have cloud function defined in my index.ts. However, when try to deploy my cloud functions with firebase deploy, the Firebase CLI is not detecting my function.

Output in the terminal

✔  functions: Finished running predeploy script.
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
i  artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔  functions: required API cloudfunctions.googleapis.com is enabled
✔  functions: required API cloudbuild.googleapis.com is enabled
✔  artifactregistry: required API artifactregistry.googleapis.com is enabled
i  functions: preparing codebase default for deployment
i  functions: preparing cloud_functions directory for uploading...
i  functions: packaged /Users/nils/cloud_functions (243.98 KB) for uploading
✔  functions: cloud_functions folder uploaded successfully
i  functions: cleaning up build files...

✔  Deploy complete!

My index.ts

import { submitFunction } from "./features/submit/submit_function";

My submit_function.ts:

exports.submit = submitFunction();
import * as functions from "firebase-functions";

export async function submitFunction() {
  return functions.https.onRequest(async (req, response) => {
    response.status(200);
  });
}

2

Answers


  1. Chosen as BEST ANSWER

    The problem is that the submitFunction function is async.

    Change your submitFunction from

    export async function submitFunction() {
      return functions.https.onRequest(async (req, response) => {
        response.status(200);
      });
    }
    

    to

    export function submitFunction() {
      return functions.https.onRequest(async (req, response) => {
        response.status(200);
      });
    }
    

  2. The Firebase CLI only looks at top-level exported functions, and the only top-level in your index.js file function does not match the signature of any Cloud Functions trigger.

    Are you looking for this?

    exports.submitFunction = functions.https.onRequest(async (req, response) => {
      response.status(200);
    });
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search