Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 重新组织云函数时发生ReferenceError_Firebase_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Firebase 重新组织云函数时发生ReferenceError

Firebase 重新组织云函数时发生ReferenceError,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,我正在按照上的说明重新组织我的云功能 但是我正在努力重用index.js文件中定义的一些全局常量 //index.js const functions=require('firebase-functions') const admin=require('firebase-admin') admin.initializeApp() const db=admin.firestore() db.settings({ignoreundinedproperties:true}) exports.choic

我正在按照上的说明重新组织我的云功能

但是我正在努力重用index.js文件中定义的一些全局常量

//index.js
const functions=require('firebase-functions')
const admin=require('firebase-admin')
admin.initializeApp()
const db=admin.firestore()
db.settings({ignoreundinedproperties:true})
exports.choice=require(“./choice”)
...
//choice.js
const functions=require('firebase-functions')
exports.redirection=函数
.区域(“欧洲西部1”)
.https.onRequest(异步(请求、回复)=>{
试一试{
const doc=await db.doc(`stbk${req.params[0]}`).get()
...
出现以下错误:
>ReferenceError:db未定义

任何帮助都将不胜感激

更新

我已经做了以下工作:

//global.js
const admin=require('firebase-admin')
admin.initializeApp()
const db=admin.firestore()
db.settings({ignoreundinedproperties:true})
module.exports={admin,db}
//choice.js
const functions=require('firebase-functions')
常量全局=需要('./全局')
exports.redirection=函数
.区域(“欧洲西部1”)
.https.onRequest(异步(请求、回复)=>{
试一试{
const doc=await global.db.doc(`stbk${req.params[0]}`).get()

这是一个有效的解决方案吗?

这是因为没有在choice.js内声明db。您可以在index.js内将db声明为全局变量,也可以在choice.js中声明它。

由于未正确初始化Firestore数据库,因此出现错误。 您可以使用以下代码:

Index.js

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

const firestoreDB = admin.firestore()

exports.choice = require('./choice')
module.exports = { db }
Choice.js


const functions = require('firebase-functions')
const global = require('./index')

exports.redirection = functions
    .region('europe-west1')
    .https.onRequest(async (req, res) => {
        try {
            const doc = await global.doc(`stbk${req.params[0]}`).get()

我认为只有index.js和choice.js就足够了。你为什么要创建另一个名为global的.js?如果你想像上面在global.js中提到的那样分开,那么你的代码对我来说似乎是有效的

如果你还有其他问题,请告诉我