Questions tagged «google-cloud-functions»

Google Cloud Functions是一种轻量级的,基于事件的异步计算解决方案,可让您创建用Node.js,Python或Go编写的小型单一用途函数,这些函数可响应云事件,而无需管理服务器或运行时环境。

14
如何为Firebase构建Cloud Functions以从多个文件部署多个功能?
我想为Firebase创建多个Cloud Functions,并从一个项目同时部署所有这些功能。我还想将每个函数分成一个单独的文件。目前,如果我将两个函数都放在index.js中,则可以创建多个函数,例如: exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); 但是我想把foo和bar放在单独的文件中。我尝试了这个: /functions |--index.js (blank) |--foo.js |--bar.js |--package.json foo.js在哪里 exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); 而bar.js是 exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); 有没有一种方法可以在不将所有功能都放入index.js的情况下完成此操作?

7
如何保护Firebase Cloud Function HTTP端点仅允许经过Firebase身份验证的用户?
借助新的firebase云功能,我决定将一些HTTP端点移至firebase。一切都很好...但是我有以下问题。我有两个通过HTTP触发器(云函数)构建的端点 用于创建用户并返回由Firebase Admin SDK生成的自定义令牌的API端点。 API端点以获取某些用户详细信息。 虽然第一个端点很好,但是对于我的第二个端点,我只想为经过身份验证的用户保护它。表示拥有我之前生成的令牌的人。 我该如何解决呢? 我知道我们可以使用以下方法在云函数中获取Header参数 request.get('x-myheader') 但是有没有办法像保护实时数据库一样保护端点?

19
在Firebase的云功能中启用CORS
我目前正在学习如何为Firebase使用新的Cloud Functions,而我遇到的问题是我无法访问通过AJAX请求编写的函数。我收到“没有'Access-Control-Allow-Origin'错误”。这是我编写的函数的示例: exports.test = functions.https.onRequest((request, response) => { response.status(500).send({test: 'Testing functions'}); }) 该函数位于以下网址中:https : //us-central1-fba-shipper-140ae.cloudfunctions.net/test Firebase文档建议在函数内部添加CORS中间件,我已经尝试过了,但是不适用于我:https : //firebase.google.com/docs/functions/http-events 这是我的方法: var cors = require('cors'); exports.test = functions.https.onRequest((request, response) => { cors(request, response, () => { response.status(500).send({test: 'Testing functions'}); }) }) 我究竟做错了什么?对此我将不胜感激。 更新: 道格·史蒂文森(Doug Stevenson)的回答很有帮助。添加({产地:真})固定的问题,我也不得不改变response.status(500)对response.status(200)我完全错过了在第一。

5
Firebase云功能非常慢
我们正在开发使用新的Firebase云功能的应用程序。当前正在发生的事情是将事务放入队列节点中。然后函数删除该节点并将其放入正确的节点。由于能够脱机工作,因此已经实现了该功能。 我们当前的问题是功能的速度。该函数本身大约需要400毫秒,所以没关系。但是有时该功能需要很长时间(大约8秒),而该条目已被添加到队列中。 我们怀疑服务器需要花费一些时间来启动,因为在第一个操作之后我们再次执行该操作。它花费的时间更少。 有什么办法可以解决这个问题?在这里,我添加了我们函数的代码。我们怀疑它没有问题,但是为了以防万一,我们添加了它。 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const database = admin.database(); exports.insertTransaction = functions.database .ref('/userPlacePromotionTransactionsQueue/{userKey}/{placeKey}/{promotionKey}/{transactionKey}') .onWrite(event => { if (event.data.val() == null) return null; // get keys const userKey = event.params.userKey; const placeKey = event.params.placeKey; const promotionKey = event.params.promotionKey; const transactionKey = event.params.transactionKey; // init …

21
从使用Cloud Functions for Firebase上传的文件中获取下载URL
在将文件上传到具有Firebase功能的Firebase存储中后,我想获取文件的下载URL。 我有这个 : ... return bucket .upload(fromFilePath, {destination: toFilePath}) .then((err, file) => { // Get the download url of file }); 目标文件有很多参数。甚至有一个叫mediaLink。但是,如果尝试访问此链接,则会出现此错误: 匿名用户没有storage.objects.get对对象的访问权限... 有人可以告诉我如何获取公共下载网址吗? 谢谢

3
如何在不影响其他某些功能的情况下将某些功能部署到Cloud Functions for Firebase?
当我跑步时 firebase deploy --only functions 它读取index.js文件并更新从该文件导出的所有功能。如果在先前的部署中有一个名为的函数a,而在当前的部署中没有该函数,a则将其删除。 换句话说,效果与删除所有现有功能然后index.js添加当前文件中的所有功能相同。 是否可以添加/更新/删除单个功能?



6
Firebase的云功能-未配置结算帐户
我刚刚为Firebase实施了新的Cloud Functions,但是日志中有些东西困扰着我: 未配置结算帐户。无法访问外部网络,并且配额受到严重限制。配置计费帐户以消除这些限制 我实际上设法从外部网络访问该功能,所以我想知道我是否真的必须提供计费帐户?Firebase文档中对此没有任何内容。 我将Spark订阅计划用于个人测试,并且如果我不打算支付任何费用,则不想添加账单信息。

3
Cloud Functions和Firebase Functions之间有什么区别?
Cloud Functions和Firebase Functions(或“ Firebase的Cloud Functions”)看起来都相同。请描述每个的用例。 两者都使用HTTP函数。 在云端功能: exports.helloHttp = function helloHttp (req, res) { res.send(`Hello ${req.body.name || 'World'}!`); }; And in the Firebase Functions: exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); }); What is difference between these?

5
如何为Firebase的Cloud Functions设置本地环境变量
我正在使用http云功能来侦听请求,然后返回一条简单消息。 我正在使用以下方法在本地开发云功能: firebase serve --only functions 我已经使用设置了一些自定义环境变量 firebase functions:config:set 部署项目后,使用以下代码访问自定义配置变量即可正常工作 functions.config() 但是在本地开发时不起作用。当通过以下命令触发函数时:http:// localhost:5002 / my-project-name / us-central1 / functionName我无法访问自定义配置变量。在本地使用functions.config()时,我可以看到默认配置,而不是我的自定义配置变量 在本地工作时,环境变量是否有替代解决方案或最佳实践?

2
了解来自GCP的“需要采取行动”电子邮件,例如:启用Cloud Build API
我将Firebase用于我的Web应用程序,而不是Google Cloud Platform,尽管我知道在幕后,每个Firebase项目也是一个GCP项目。 我刚收到来自GCP的电子邮件,说(摘录): [需要采取的措施]:在2020年4月20日之前为您的项目启用Cloud Build API,以确保正确构建和部署Cloud Function ...您必须为您的项目启用Cloud Build API,以确保您的Cloud Function为正确构建和部署。启用API后,如果您的Cloud Build,Container Registry或Cloud Storage的使用量超出了这些产品的免费套餐限制,则可能需要付费。 这是否会完全影响Firebase的部署或开发过程? (例如,现在我使用firebase deploy) 据我所知,答案是否定的-它只是允许更长的每天最大构建时间。但是电子邮件中根本没有提到Firebase,因此我想确定我早在4月20日之前就能理解其他任何含义。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.