Cloud Functions Firebase v1.0 不会初始化
Posted
技术标签:
【中文标题】Cloud Functions Firebase v1.0 不会初始化【英文标题】:Cloud Functions Firebase v1.0 won't initialize 【发布时间】:2018-09-16 04:41:01 【问题描述】:随着 Firebase 云功能的最新更新,我在初始化应用程序以及数据库引用时遇到错误。
第一个错误: 以下应基于 Firebase 函数 v1.0 文档和示例 (https://github.com/firebase/friendlychat-web/blob/master/cloud-functions/functions/index.js)
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(); //this fails
对于上述代码,我在 firebase 部署时收到以下错误:
Error: Error occurred while parsing your function triggers.
Error: Failed to parse app options file: Error: ENOENT: no such file or directory, open '[object Object]'
at FirebaseAppError.FirebaseError [as constructor] (/Users/ZZZ/dummy/functions/node_modules/firebase-admin/lib/utils/error.js:39:28)
at FirebaseAppError.PrefixedFirebaseError [as constructor] (/Users/ZZZ/dummy/functions/node_modules/firebase-admin/lib/utils/error.js:85:28)
at new FirebaseAppError (/Users/ZZZ/dummy/functions/node_modules/firebase-admin/lib/utils/error.js:119:28)
at FirebaseNamespaceInternals.loadOptionsFromEnvVar (/Users/ZZZ/dummy/functions/node_modules/firebase-admin/lib/firebase-namespace.js:214:19)
at FirebaseNamespaceInternals.initializeApp (/Users/ZZZ/dummy/functions/node_modules/firebase-admin/lib/firebase-namespace.js:64:28)
at FirebaseNamespace.initializeApp (/Users/ZZZ/dummy/functions/node_modules/firebase-admin/lib/firebase-namespace.js:362:30)
at Object.<anonymous> (/Users/ZZZ/dummy/functions/index.js:5:7)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
如果我传递了配置文件,这个错误就会得到解决(但它违反了 firebase 文档)
const functions = require('firebase-functions');
const admin = require('firebase-admin');
var config =
apiKey: "<APIKEY>",
authDomain: "<DOMAIN>",
databaseURL: "<URL>",
projectId: "<PROJECTID>",
storageBucket: "<BUCKET>",
messagingSenderId: "<ID>"
;
admin.initializeApp(config);//this works
第二个错误:当我如下进行数据库引用调用时,它失败并给出错误:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
var config =
apiKey: "<APIKEY>",
authDomain: "<DOMAIN>",
databaseURL: "<URL>",
projectId: "<PROJECTID>",
storageBucket: "<BUCKET>",
messagingSenderId: "<ID>"
;
const app = admin.initializeApp(config);
exports.updateUserProfile = functions.database.ref('/UserProfile/userid')
.onCreate((snapshot, context) =>
console.log(snapshot.val());
);
日志:
Running command: npm --prefix "$RESOURCE_DIR" run lint
> functions@ lint /Users/ZZZ/dummy/functions
> eslint .
✔ functions: Finished running predeploy script.
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
Error: Unexpected token o in JSON at position 1
【问题讨论】:
请编辑问题以显示失败的完整且最少的代码(不是任何有效的修改代码)。 @DougStevenson 感谢您的回复道格。我已经更新了问题 为了其他用户,我可以建议让您的问题的标题更具描述性吗?Cloud Functions Firebase v1.0
有点笼统。 Can't config Cloud Functions Firebase v1.0
或 Cloud Functions Firebase v1.0 won't initialize
会让其他人更容易扫描,以防遇到同样的问题。
我遇到了和你一样的错误,this answer 允许我部署。
【参考方案1】:
您遇到此错误是因为 firebase CLI 版本 3.18.1 中的 bug。 尝试卸载当前版本并安装 3.18.0,这应该可以解决错误。
npm uninstall -g firebase-tools
npm install -g firebase-tools@3.18.0
更新: Firebase CLI 版本 3.18.2 已发布,issue 现已解决。
【讨论】:
他们已经发布了一个新版本 3.18.2 所以你应该更新答案不建议降级:-) github.com/firebase/firebase-tools/releases/tag/v3.18.2【参考方案2】:我遇到了同样的错误。对我来说,当我关注 these instructions 从 javascript 项目迁移到 Typescript 项目时,问题似乎已经解决。
这有点像冰雹玛丽,实际上可能不是修复它的原因。不过,如果您仍然卡住,快速备份并试一试也无妨。
【讨论】:
【参考方案3】:如果您更新了 NPM 模块,那么您现在使用的是云函数 v1 的稳定版本。应该对现有代码进行一些小的更改。请按照以下指南进行操作
https://firebase.google.com/docs/functions/beta-v1-diff?utm_source=email&utm_medium=email&utm_campaign=cloud_functions_v1.0
Firebase SDK for Cloud Functions 版本 1.0.0 引入了一些 API 的重要变化。主要变化,替换 带有数据和上下文参数的 event.data 格式,影响所有 异步(非 HTTP)函数。更新后的 SDK 也可以使用 使用 firebase-functions-test,一个全新的单元测试配套 SDK。 有关详细信息,请参阅单元测试函数。
【讨论】:
以上是关于Cloud Functions Firebase v1.0 不会初始化的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中为 Firebase 使用 Cloud Functions
Cloud Functions for Firebase 超时
Firebase Cloud Functions https.onCall 完成状态码:204
Cloud Functions for Firebase onWrite 超时