按照迁移到Firebase Cloud Functions 1.0的所有说明后,部署失败

时间:2018-04-06 12:41:19

标签: firebase firebase-realtime-database google-cloud-functions

我尝试将Firebase Cloud Functions安装迁移到新发布的V1.0。

我已仔细按照提供的所有说明进行操作 https://firebase.google.com/docs/functions/beta-v1-diff,包括运行更新以及遍历每个函数,以确保它反映了v1中破坏旧函数的更改。

当我尝试运行部署(仅限功能)时,出现以下错误:错误:

  

作为名为" [DEFAULT]"的应用的initializeApp()的第一个参数传递的Firebase应用选项无效。 "凭证" property必须是实现Credential接口的对象。

值得注意的是,特别提到不再需要在参数中提供凭据:" firebase-admin现在已在Cloud Functions运行时内没有任何参数进行初始化。"

我怀疑Firebase云功能的更新(npm install firebase-functions @ latest --save)并没有成功。我怀疑这是因为,尽管在该调用之后有很多活动,但输出只有两行:

Brandus@1.0.0 /Users/ajr/Documents/dev/sites/Brandus
└── firebase-functions@1.0.0 

我看到了另一个症状相同的问题:Cloud Functions Firebase v1.0。我试着发表评论,但声誉太低了。

编辑:按要求编写的代码

// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require( 'firebase-functions' ) ;

var fs      = require('fs');
var url     = require('url');
var http    = require('http');
var https    = require('https');

// tinycolor2
const tinycolor = require( 'tinycolor2' ) ;
// The Firebase Admin SDK to access the Firebase Realtime Database. 
const admin = require( 'firebase-admin' ) ;
//admin.initializeApp(functions.config().firebase);
admin.initializeApp();

所有代码到达错误的位置,前面的代码被注释掉了。

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。正如Bob Snyder在其中一条评论中所建议的那样,我在package.json中检查了我的版本,而firebase-admin仍然是旧版本。将它设置为^ 5.11.1并在functions文件夹中运行“npm install”后,我就可以立即部署了。我没有必要将项目更改为TypeScript。

您可以在函数文件夹中运行npm install --save firebase-admin@latest。这样更好,没有任意版本可以指定。

答案 1 :(得分:1)

我可以在更改项目后使用TypeScript而不是Javascript成功部署。部署后,这些功能似乎正常工作。

我跟着these instructions完成了迁移。

即使没有迁移到打字稿,新的firebase init也可以修复它,但不管怎样,这对我有用。