firebase / firebase/functions-samples
[BUG] in sample: firebase function (2nd generation)
- Dominant language
- JavaScript
- Stars
- 12.2k
- Forks
- 3.8k
- Avg merge
- 3d 23h
- Merged PRs (30d)
- 1
Description
### Which sample has a bug?
**Sample name or URL where you found the bug**
https://github.com/firebase/functions-samples/blob/539345b1d7b3af7a7fd4fadaa54255329bdff3e3/2nd-gen/callable-functions/functions/index.js#L17
const {onCall, HttpsError} = require("firebase-functions/v2/https");
### How to reproduce the issue
Not sure how this can be reproduced: previous versions of same code had been deployed and currently in production. This started randomly.
Tl:Dr:
* I have a few firebase functions (2nd generation) currently being tested in production
* I deployed several iterations of one of the functions already
* Then I refactored some code, tried re-deploying again, and suddenly, `onCall` imported from `firebase-functions/v2/http` stopped working
**Failing Function code used (if you modified the sample)**
Current code in production (and working) has `onCall` imported as a named import this way:
`import {HttpsError, onCall} from "firebase-functions/v2/https"`
After the deployment failure started, I fell back to using `require` as shown in the example I posted above. i.e.
`const {onCall, HttpsError} = require("firebase-functions/v2/https");`
Basic structure of what I have in production:
```
import * as admin from "firebase-admin";
import {HttpsError, onCall} from "firebase-functions/v2/https"
import {CallableRequest} from "firebase-functions/lib/common/providers/https";
import {APIRequestPayload} from "./typeDef"; //some custom type definition
exports.myfunctionname = onCall({
enforceAppCheck: true,
secrets: ["A_SECRET_I_USE"],
region: "us-east1",
cpu: 2,
concurrency: 500,
maxInstances: 15,
}, async (incomingData: CallableRequest) => {
const data: APIRequestPayload = incomingData.data;
const secretVariable = process.env.A_SECRET_I_USE;
//
** some code logic
//
if(someError) {
throw new HttpsError("internal", "Something went wrong");
}
return {codeLogicResult: somecodeprocessingresult}
})
```
**Steps to set up and reproduce**
* Write a basic function
* Run `npm run deploy` from the `function` folder
### Debug output
**Errors in the
[console logs](https://console.firebase.google.com/project/_/functions/logs?search=&severity=DEBUG)**
[Error: Failed to load function definition from source: Failed to generate manifest from function source: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/v2/providers/https' is not defined by "exports" in /Users/myuser/path_to_function_folder/functions/node_modules/firebase-functions/package.json](https://console.firebase.google.com/project/_/functions/logs?search=&severity=DEBUG)
**Screenshots**

### Expected behavior
Function should be deployed when `npm run deploy` is run from the cli as per documentation
### Actual behavior
Function fails to deploy with the error message above
Contributor guide
Assessment
This issue has not been assessed yet.