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"
}
}
}
If checking Firebase setup doesn't work, try this:
firebase emulators:start
. Check if displayed error request to install OpenJDK.firebase emulators:start --only functions,firestore
or firebase serve --only functions,firestore
.Could be you don't have firestore configured properly in your firebase.json file. This makes emulator not being started.
What you need is to run firebase init firestore
in your project directory. This would create firestore rules and indexes files and update your firebase.json correspondingly.
从 Firebase CLI ( firebase-tools
) 7.8.0
版本开始,有一个新命令firebase init emulators
可以帮助您设置要运行的所有模拟器。
Actually this error comes when the user initialize the firebase project without database. So the command firebase emulators:start --only database
can not start the database emulator because it need the "database.rules.json" file and the configuration entries for database in the firebase.json file . So if you forgot to initialize the database in firebase init
command then you can add firebase database whenever you want by following firebase CLI command
firebase init database
then you can run firebase emulators:start --only database
for starting the database emulator in the localserver .
and If you want to use emulator for both function and database then run firebase serve --only functions,database
For me after installing th java runtime , everything worked perfectly.
Also came across this issue, I was importing data, but I was in the wrong directory, simple fix. Hope this may help someone as error output gives no indication.
Original command:
firebase emulators:start --import ./firebaseexport
Error:
i emulators: Starting emulators: functions, firestore, hosting
i emulators: Shutting down emulators.
i hub: Stopping emulator hub
Error: An unexpected error has occurred.
Fix:
firebase emulators:start --import ./functions/firebaseexport
In the firebase.json file Change host for firestore from
"host": "http://localhost"
(which is created during the firebase init command) to
"host": "localhost"
Elaboration: firebase version 9.16.0
With the firebase.json snippet
{
// ...
"emulators": {
"firestore": {
"host": "http://localhost",
"port": "8081"
}
}
}
The emulator would stop with:
firebase emulators:start --only firestore
i emulators: Starting emulators: firestore
i emulators: Shutting down emulators.
i hub: Stopping emulator hub
⚠ firestore: Port 8081 is not open on http://localhost, could not start Firestore Emulator.
⚠ firestore: To select a different host/port, specify that host/port in a firebase.json config file:
{
// ...
"emulators": {
"firestore": {
"host": "HOST",
"port": "PORT"
}
}
}
i emulators: Shutting down emulators.
Error: Could not start Firestore Emulator, port taken.
But when "http:localhost" is changed to "localhost", then it works (the error message is missleading)..
The key was (in debug mode) the line
port check error: Error: getaddrinfo ENOTFOUND http://localhost
one suggestion in another link was to check /etc/hosts, but a simplier fix was to get rid of the "http://" part.
I fixed it by doing
select the things you need using space key Then after finish
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.