我正在尝试将Firebase Cloud 功能安装迁移到新发布的V1.0 .
我已仔细按照https://firebase.google.com/docs/functions/beta-v1-diff提供的所有说明进行操作,包括运行更新以及执行每项功能,以确保它反映了v1中破坏旧功能的更改 .
当我然后尝试运行部署(仅用于函数)时,我收到以下错误:错误:
无效的Firebase应用选项作为名为“[DEFAULT]”的应用的initializeApp()的第一个参数传递 . “credential”属性必须是实现Credential接口的对象 .
值得注意的是,特别提到不再需要在参数中提供凭证:“firebase-admin现在在Cloud Functions运行时内没有任何参数进行初始化 . ”
我怀疑Firebase Cloud 功能的更新(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 回答
我有同样的问题 . 正如Bob Snyder在其中一条评论中所建议的那样,我在package.json中检查了我的版本,而firebase-admin仍然是旧版本 . 将它设置为^ 5.11.1并在functions文件夹中运行“npm install”后,我就可以立即部署了 . 我没有必要将项目更改为TypeScript .
您可以在函数文件夹中运行
npm install --save firebase-admin@latest
. 这样更好,没有任意版本可以指定 .在更改项目后使用TypeScript而不是Javascript,我能够成功部署 . 部署后,这些功能似乎正常工作 .
我按照these instructions完成了迁移 .
即使没有迁移到打字稿,新鲜的firebase init也可以修复它,但不管怎样,这对我有用 .