I'm trying to test my functions locally using the guide listed here https://firebase.google.com/docs/functions/local-emulator
I have installed the latest firebase-tools using
npm install -g firebase-tools
In my package.json
I confirmed to be running
"firebase-admin": "^7.3.0", "firebase-functions": "^2.3.1",
When I try to run my functions using
firebase emulators:start
It gives me the below output. What am I doing wrong?
Starting emulators: ["functions"]
⚠ Your requested "node" version "8" doesn't match your global version "11"
✔ functions: Emulator started at http://localhost:5001
i functions: Watching "[FUNCTIONS FOLDER PATH]" for Cloud Functions...
⚠ Default "firebase-admin" instance created!
⚠ Ignoring trigger "[FUNCTION NAME]" because the service "firebaseauth.googleapis.com" is not yet supported.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
⚠ Ignoring trigger "[FUNCTION NAME]" because the Cloud Firestore emulator is not running.
etc.
etc.
etc.
i functions: HTTP trigger initialized at http://localhost:5001/[APP NAME]/us-central1/[FUNCTION NAME]
[2019-05-15T21:43:52.436Z] @firebase/database: FIREBASE WARNING:
{"code":"app/invalid-credential","message":"Credential implementation provided to
initializeApp() via the \"credential\" property failed to fetch a valid Google
OAuth2 access token with the following error: \"Error fetching access token: Error
while making request: getaddrinfo ENOTFOUND metadata.google.internal
metadata.google.internal:80. Error code: ENOTFOUND\"."}
I had the same issue there were a few things wrong for me
firebase setup:emulators:firestore
My second issue was that my initial firebase configuration had installed the config files into my home folder rather then the project folder as described [here] this meant so my project was missing firestore.rules and firestore.indexes.json and some of the configuration settings.
run firebase init to generate these files
Once I fixed these two things it worked for me. I hope this helps.
As a reference my firebase.json looks like this
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "dist",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
"emulators": {
"firestore": {
"port": "5002"
}
}
}