2017-03-16 47 views
21

的火力地堡云功能是最近刚刚发布,我下面就一个新的说明进行安装。Here is the "Get Started" page.“functions.config()不可用‘与火力地堡如何使用Node.js云功能

我已经安装了’ npm install -g firebase-tools“和我所有的文件都在我的项目中,我正在使用WebStorm 2016.3和Node.JS v6.10.0。

我已经安装并设置了firebase登录和firebase init函数。 我的设置 Here is my set up.

我的包age.json

{ 
    "name": "functions", 
    "description": "Cloud Functions for Firebase", 
    "dependencies": { 
    "firebase-admin": "^4.1.2", 
    "firebase-functions": "^0.5" 
    }, 
    "private": true 
} 

这些前两行代码工作。

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

但是当我尝试运行这条线......

admin.initializeApp(functions.config().firebase); 

我得到这个错误。

Error: functions.config() is not available. Please use the latest version of the Firebase CLI to deploy this function. 
    at init (/Users/.../functions/node_modules/firebase-functions/lib/config.js:46:19) 
    at Object.config (/Users/.../functions/node_modules/firebase-functions/lib/config.js:29:9) 
    at Object.<anonymous> (/Users/.../functions/index.js:11:31) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:394:7) 

我在这里错过了什么?

回答

24

如果你和我一样,并得到这个错误试图在本地运行你的函数,那么你会得到这个错误,因为functions.config()只在云功能运行时间内可用。如果您在部署之前试图测试您的功能,请参阅以下文档的链接:https://firebase.google.com/docs/functions/unit-testing#mocking_database_writes

+3

对我而言,它使用了其他环境变量。我在相邻页面上找到了答案,该页面说创建本地运行时配置以复制实际的配置文件,因为该配置仅适用于部署的代码。对于本地,运行这个'firebase functions:config:get> .runtimeconfig.json'。 –

+0

这帮助我了解如何在部署之前在本地进行测试:https://firebase.google.com/docs/functions/local-emulator – cking24343

+0

@MartavisP。你救了我的一天!重要说明:.runtimeconfig.json应放置在“functions”文件夹内,因此也有问题,因为最初放在根目录下。 –

6

即使您尝试安装最新的firebase-tools,看起来好像您仍可能拥有旧版本的firebase CLI。

您可以通过运行firebase --version进行检查。那应该说至少3.5.0。如果没有,你会想再次运行npm install -g firebase-tools,这应该有望解决问题。

如果您的firebase --version继续显示错误的版本,您需要检查是否意外安装了多个版本的firebase-tools

+0

是的,我有3.5.0。我会环顾四周,看看我是否可以卸载Firebase并重新安装。另外,我的firebase.json文件是空白的,对吗? –

+0

我不希望该文件是空白的。即使'firebase.json'中没有值,它也会包含'{}'。你可能想尝试再次运行'firebase init'。 –

+0

对我来说,它没有奏效。我需要手动编写config.json文件。请查看https://github.com/GoogleCloudPlatform/cloud-functions-emulator/issues/74 – ByteArtisan

1

我从错误的目录运行firebase部署。希望这可以节省一些时间。