5
votes

Firebase - TypeError: le chemin doit être une chaîne. Reçu undefined

Je suis en train de démarrer avec Firebase.

Je ne suis pas sûr à l'intérieur et à l'extérieur de la base de feu et sur la base de ma compréhension vague, j'ai configuré mon application de cette façon.

Dans le fichier principal Index.js , je demande

//All the operations at firebase store would be done from here 
const firebaseDb = require("./../config/firebaseConfig.js")

    firebaseDb.db.collection('users').add({
        name: "Rohit Bhatia",
        age: "24"
    })
    .then((response) => {
        console.log("this is response", response)
    })
    .catch((err) => {
        console.log("This is error in firebase", err)
    })

Ici, firebaseConfig est l'endroit où je configure ma base de feu

const firebaseConfigJSON = require("./functions-config.json")
const admin = require("firebase-admin");


admin.initializeApp({
    credential: admin.credential.cert(firebaseConfigJSON),
    databaseURL: "https://functions-firebase-43a59.firebaseio.com"
})

const db =  admin.firestore()
db.settings({ timestampsInSnapshots: true });

 module.exports = {
    db
 }

puis en utilisant cette base de données importée dans firebaseDb

const path = require('path')
const firebaseConfig = require("./src/config/firebaseConfig.js")
const firebaseDb = require("./src/helperFunctions/firebase_db.js")

Depuis la plupart des le code est singleton ici, je m'attendais à ce que tout se passe bien jusqu'à ce que je reçoive l'erreur suivante

Il s'agit d'une erreur dans Firebase TypeError: le chemin doit être une chaîne. Reçu indéfini

sur assertPath (path.js: 28: 11)

à Object.join (path.js: 1236: 7)

sur getPath (/Users/anilbhatia/Desktop/google-functions/functions/node_modules/dir-glob/index.js:6:41)

sur globs.concat.map.x (/Users/anilbhatia/Desktop/google-functions/functions/node_modules/dir-glob/index.js:47:59)

sur Array.map ()

à module.exports.sync (/Users/anilbhatia/Desktop/google-functions/functions/node_modules/dir-glob/index.js:47:33)

sur globDirs (/Users/anilbhatia/Desktop/google-functions/functions/node_modules/globby/index.js:58:9)

sur getPattern (/Users/anilbhatia/Desktop/google-functions/functions/node_modules/globby/index.js:61:64)

sur globTasks.reduce (/Users/anilbhatia/Desktop/google-functions/functions/node_modules/globby/index.js:107:19) sur Array.reduce ()

Quelqu'un peut-il m'aider s'il vous plaît à comprendre ce que je pourrais faire de mal? ou peut-être ai-je réellement eu la base de feu?

Mon objectif initial était de créer une collection dans ma firebase via mon application express avant de mettre les données des routes API.


6 commentaires

À partir d'aujourd'hui, j'ai également reçu cette erreur à des endroits où le «chemin» ne peut pas être indéfini. Dans l'attente de quelques explications


Le paquet dir-glob a été mis à jour aujourd'hui (2.2.0), et il semble casser des choses. (firebase, entre autres)


même j'ai commencé à obtenir cette erreur sur l'environnement déployé par firebase, je ne suis pas en mesure de le reproduire en local.


même erreur ici depuis le dernier déploiement il y a quelques minutes


lancez npm update dans le répertoire 'functions et déployez. Cela a mis à jour tous les packages. Cela a résolu pour moi.


npm update n'a pas corrigé l'erreur pour moi


3 Réponses :


3
votes

Essayez d'exécuter: npm install firebase-admin@6.4.0

Vous pouvez également faire: npm install npm run build (dans le dossier des fonctions.)

Puis Firebase deploy .

Je l'ai corrigé pour moi.


3 commentaires

Quelle était la raison alors, je n'ai pas pu reproduire cela sur l'environnement local?


L'environnement local fonctionnait bien malgré tout, je pense que c'est la mise à jour de ce paquet dir-gob qui causait des problèmes à des gens comme ce type et moi. Personnellement, nous n'avions pas mis à jour firebaseadmin (ou quoi que ce soit) depuis le début, mais après cela, aucun problème en direct ou en local.


la mise à jour de firebase-admin l'a corrigé pour moi



2
votes

Nous avons pu rétablir le dir-glob en 2.0.0 en ajoutant:

npm install dir-glob@2.0.0 --save
npm install globby@8.0.0 --save

Dans les dépendances package.json .

Vous pouvez le faire avec:

"dir-glob": "2.0.0",
"globby": "8.0.0",

Nous avons ensuite supprimé les node_modules et exécuté: npm install et déployé sur Firebase


0 commentaires

0
votes

Future googler's

Assurez-vous que dans votre fichier firebase.json vous avez le bon chemin source :

{
  "functions": {
    "predeploy": "npm run build",
    "source": "."
  }
}


1 commentaires

J'ai le même problème - mais ma seule référence à la source dans firebase.json est: "rewrites": [{"source": "**", "destination": "/index.html"}]