web-dev-qa-db-fra.com

Avertissement, la variable d'environnement FIREBASE_CONFIG est manquante. L'initialisation de firebase-admin échouera

Quand je suis le document de Firebase, mais je ne peux pas me connecter à Firebase.
Quelqu'un est-il confronté à ce problème?
https://firebase.google.com/docs/firestore/quickstarthttps://firebase.google.com/docs/firestore/manage-data/add -data

???? index.js

var admin = require("firebase-admin");
var serviceAccount = require("./key/serviceAccountKey.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://sampleLink.firebaseio.com"
});
const functions = require('firebase-functions');

var db = admin.firestore();
var data = {
  name: 'Los Angeles',
  state: 'CA',
  country: 'USA'
};

// Add a new document in collection "cities" with ID 'LA'
var setDoc = db.collection('cities').doc('LA').set(data);
setDoc

???? package.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "Shell": "firebase functions:Shell",
    "start": "npm run Shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase": "^5.7.3",
    "firebase-admin": "~6.0.0",
    "firebase-functions": "^2.1.0"
  },
  "private": true
}

???? La console revient

tktktk:functions dev$ node index.js
Warning, FIREBASE_CONFIG environment variable is missing. Initializing firebase-admin will fail

The behavior for Date objects stored in Firestore is going to change
AND YOUR APP MAY BREAK.
To hide this warning and ensure your app does not break, you need to add the
following code to your app before calling any other Cloud Firestore methods:

  const firestore = new Firestore();
  const settings = {/* your settings... */ timestampsInSnapshots: true};
  firestore.settings(settings);

With this change, timestamps stored in Cloud Firestore will be read back as
Firebase Timestamp objects instead of as system Date objects. So you will also
need to update code expecting a Date to instead expect a Timestamp. For example:

  // Old:
  const date = snapshot.get('created_at');
  // New:
  const timestamp = snapshot.get('created_at');
  const date = timestamp.toDate();

Please audit all existing usages of Date when you enable the new behavior. In a
future release, the behavior will change to the new behavior, so if you do not
follow these steps, YOUR APP MAY BREAK.

Mon env est ci-dessous:
$ firebase --version
6.3.0
$ node -v
v8.12.0
$ npm -v
6.4.1

14
user10945377

J'ai eu exactement le même problème. Il s'avère que cela a à voir avec Node version 1 J'ai supprimé Node 10 et je suis retourné à Node 8 et tout fonctionnait comme un charme ...

 const functions = require('firebase-functions');
 const admin = require('firebase-admin');
 admin.initializeApp();

Il suffit de frapper

 firebase deploy --only functions

dans Node v8.

9
Jasper Cuvelier

La bonne façon d'exécuter une fonction cloud localement est via le Functions Shell (voir https://firebase.google.com/docs/functions/local-emulator ). Si vous voulez l'exécuter directement comme $ node index.js, Vous devez définir vous-même les variables d'environnement requises, sinon firebase-functions Va se plaindre.

Cependant, notez que le message ci-dessus n'est qu'un avertissement. Votre code fonctionne malgré cela. Si vous ne voyez aucune donnée écrite dans Firestore, c'est probablement parce que vous ne gérez pas la promesse retournée par la méthode Firestore set().

3
Hiranya Jayathilaka

cet avertissement FIREBASE_CONFIG indique que le chemin d'accès au JSON est manquant (ou incorrect).

soit configurer FIREBASE_CONFIG, comme il le demande - soit configurer GOOGLE_APPLICATION_CREDENTIALS comme variable d'environnement puis exécuter gcloud auth application-default login; alors vous pouvez utiliser admin.credential.applicationDefault() au lieu de admin.credential.cert(serviceAccount).

2
Martin Zeitler

Essayez d'utiliser ces dépendances de version (dans package.json) avec le nœud v8. Ça a marché pour moi.

"dependencies": {
"firebase-admin": "~7.1.1",
"firebase-functions": "^2.2.1"

},

0
Sridhar Natuva