我尝试将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();
所有代码到达错误的位置,前面的代码被注释掉了。
答案 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也可以修复它,但不管怎样,这对我有用。