As per the documentation:
If you are using the Node.js Admin SDK in a Cloud Function, you can automatically initialize the SDK through the functions.config() variable:
admin.initializeApp(functions.config().firebase);
But when I try this very simple piece of code:
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
exports.orhub = functions.https.onRequest((req, res) => {
res.end()
})
I get the following error:
error: 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: invalid_grant (Bad Request)\". There are two likely causes: (1) your server time is not properly synced or (2) your certificate key file has been revoked. To solve (1), re-sync the time on your server. To solve (2), make sure the key ID for your key file is still present at https://console.firebase.google.com/iam-admin/serviceaccounts/project. If not, generate a new key file at https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk."}
My Ubuntu pc has date and timezone automatically synced, so that's not the problem. I created this project today, so I got the latest modules.
So, what's the problem? Isn't "Cloud Functions" mentioned in the docs the same as Firebase functions?
I had the same problem, and I solved it as follows:
Implementation code:
const admin = require('firebase-admin');
var serviceAccount = require('PATH/file_private_key.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://DATA_BASE_URL.firebaseio.com"
});
More info: https://firebase.google.com/docs/database/admin/start
Since version 5.9.1
of firebase-admin
it's possible to call initializeApp
without any arguments. See release notes here. I would suggest updating to the latest version.
Firebase SDK for Cloud Functions upgrade guide: beta to version 1.0 or higher https://firebase.google.com/docs/functions/beta-v1-diff
New initialization syntax for firebase-admin firebase-admin is now initialized without any parameters within the Cloud Functions runtime.
Before (<= v0.9.1)
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
Now (>= v1.0.0)
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
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