I'm trying to follow this documentation to use parameterized configuration in my Firebase cloud functions.
The example they give is in Javascript, in particular in how they import defineInt and defineString from firebase-functions/params.
const { defineInt, defineString } = require('firebase-functions/params');
But all my functions code is in Typescript so I tried to translate that into:
import {defineInt} from "firebase-functions/lib/params";
Since apparently firebase-functions/params cannot be resolved.
But then when I try to deploy my functions, I get the following error message:
Error: Failed to load function definition from source: Failed to generate manifest from function source: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/params' is not defined by "exports" in /Users/sarbogast/dev/blindly/blindly/functions/node_modules/firebase-functions/package.json
Any idea what's the proper way to import those functions in Typescript?
The following import should resolve the issue:
import { https } from "firebase-functions/v1";
import { defineString } from "firebase-functions/params"; // no /lib
const welcomeMessage = defineString("WELCOME_MESSAGE");
export const hello = https.onRequest((request, response) => {
response.send("Message: " + welcomeMessage);
});
Dependencies:
"firebase-admin": "^11.2.0",
"firebase-functions": "^4.0.1"
And given that the error is an eslint one and it doesn't make sense in that context, adding the following to .eslintrc.js turns the blocking error into a more persmissive warning:
module.exports = {
...
rules: {
...
"import/no-unresolved": "warn",
},
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With