Set Up Firebase and Google Cloud Functions
- Ensure that your Firebase project is initialized. You should already have your Firebase CLI installed and configured.
- Make sure your Firebase project is linked to a Google Cloud project in the Firebase console under Project Settings > General.
- Enable the Cloud Functions API in the Google Cloud Console as it is essential for deploying your Google Cloud Functions.
Initialize Cloud Functions in Firebase
- In your Firebase project directory, run the command to initialize Cloud Functions. This sets up all the files and directory structure you need:
firebase init functions
- Select JavaScript or TypeScript as the language for your functions, depending on your preference. You can also opt for ESLint for code verification.
- After initialization, you’ll find a `functions` directory in your project with necessary files like `index.js` and `package.json`.
Write Your First Cloud Function
Deploy Your Functions
Test Your Cloud Function
- To test your cloud function, open a browser or use a tool like `curl` or Postman to access the HTTPS trigger URL for your function.
- You should receive the response configured in your function. If you encounter issues, check the Firebase logs using the Firebase CLI command:
firebase functions:log
Use Cloud Functions with Firebase Services
Optimize and Secure Your Functions
- Consider setting up CORS (Cross-Origin Resource Sharing) for HTTP functions to improve security and control access to your functions. Use the `cors` package:
const cors = require('cors')({origin: true});
exports.secureFunction = functions.https.onRequest((req, res) => {
cors(req, res, () => {
// Secure function logic here
});
});
- For large applications, separate functions into different files and require them in `index.js` to maintain code organization and readability.
- Use environment configuration to safely store API keys and sensitive data. Execute:
firebase functions:config:set someservice.key="THE_API_KEY"
- Access them in your functions code using:
const functions = require('firebase-functions');
const apiKey = functions.config().someservice.key;