Firebase-TypeError:路径必须是字符串。收到未定义

时间:2019-01-09 10:44:57

标签: node.js firebase express

我刚开始使用Firebase。

我不确定是否可以进入和退出Firebase,基于我的模糊理解,我已经以这种方式配置了我的应用程序。

在主 Index.js 文件中,我需要

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

在这里,firebaseConfig是我配置Firebase的地方

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
 }

,然后在firebaseDb

中使用此导入的Db
//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)
    })

由于这里的大多数代码都是单例代码,因此我一直期待一切顺利,直到收到以下错误为止

  

这是Firebase TypeError中的错误:路径必须是字符串。已收到   未定义

     

在assertPath(path.js:28:11)

     

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

     

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

     

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

     

在Array.map()

     

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

     

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

     

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

     

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

有人可以帮我弄清楚我可能做错了什么吗?还是我实际上得到了火力基地?

我的最初目标是在放置来自api路由的数据之前,通过我的express应用在我的Firebase中创建一个集合。

3 个答案:

答案 0 :(得分:3)

尝试运行: npm install firebase-admin@6.4.0

您还可以执行以下操作: npm install npm run build(在函数文件夹中。)

然后firebase deploy

为我修复了。

答案 1 :(得分:2)

我们能够通过添加以下内容将dir-glob还原为2.0.0:

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

在package.json dependencies中。

您可以执行以下操作:

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

然后我们删除了node_modules并运行:npm install并部署到Firebase

答案 2 :(得分:0)

未来的Google员工

确保在您的firebase.json文件中,您具有正确的source路径:

{
  "functions": {
    "predeploy": "npm run build",
    "source": "."
  }
}
相关问题