Tag: function

如何使用云端function发送Firebase数据

我克隆了这个示例minimal-webhook,并得到这个工作。 我想通过发送写入松弛来扩展此function。 我正在使用slack的传入webhook。 我想这个问题是如何在nodejs中添加数据有效载荷的方式。 谁能帮忙? 提前致谢。 附加我的代码和错误日志从firebase。 const functions = require('firebase-functions'); const request = require('request-promise'); const WEBHOOK_URL = 'https://hooks.slack.com/services/abc' var headers = { 'Content-type': 'application/json' }; exports.webhook = functions.database.ref('/hooks/{hookId}').onWrite(event => { return request({ uri: WEBHOOK_URL, method: 'POST', headers: headers, body: event.data.toJSON, resolveWithFullResponse: true }).then(response => { if (response.statusCode >= 400) { throw new Error(`HTTP Error: […]

在NodeJS,JXcore等下可能运行的代码如何检测它是否在支持本机ES6承诺的环境中运行?

例如,我有当前版本的官方Joyent NodeJS,当然还有Google V8 JavaScript引擎,还有带有Mozilla SpiderMonkey JavaScript引擎的JXcore。 前者似乎来源于原生的诺言支持,后者似乎不是。 (当然,这些并不是nodeJS代码可能运行的唯一两种可能的环境。 我的代码如何testing它的环境以查看它是否可以使用本机Promise? 在这种情况下,如果它检测到一个合适的polyfill是“本地的”就可以了。 但是它不应该检测出像Q这样的本地承诺。 (或者让我知道,如果我错了这个。)

如何了解Firebase云端function中的新数据?

您如何知道数据是否未更改以及Firebase Cloudfunction中的新增function? 我已经尝试了几个不同的选项来标记,如果数据刚刚更改,那么我不会发送推送通知。 另外我试图从快照获取_newData和_data子节点来比较数字,如果__newData更大,那么这是一个新的logging,但它没有工作。 请告诉我如何做到这一点。 示例代码片段。 module.exports = functions.database.ref('/userListEvents/{userID}') .onWrite(event => { const snapshot = event.data; if (event.data.val() && !event.data.previous.val()) { console.log('send push notification'); } else if (snapshot._data) { console.log('send push notification'); } else { return console.log('data was removed'); }; } 参考 functions.database.ref('/cards/{cardID}/interestedUsers') .onWrite(event => { 更新:这个选项对我不起作用,因为如果我这样做,例如functions.database.ref ('/ userListEvents / {userID} / {eventID}') ,那么报告错误是该字段不能为空。 我尝试了,但没有得到好的结果。 […]

想要将variables传递给节点asynchronous的映射方法

我使用节点asynchronous,我想传递一个variables的方法,它使用的第二个参数…例如: async.map(submissions, addScore, function(err, submissions) { if (submissions) { return submissions; } }); 我想通过userId与addScore但不知道如何做到这一点。 addScore是我每次提交时调用的方法,它需要一个userId 。

Firebase云function与批量更新不一致

我有我的firebase云function,我在这里调用我的外部api终点。 const functions = require('firebase-functions'); var admin = require("firebase-admin"); admin.initializeApp(functions.config().firebase); var request = require('request'); var moment = require('moment'); var rp = require('request-promise'); var db = admin.database(); exports.onCheckIn = functions.database.ref('/news/{newsId}/{entryId}') .onCreate(event => { console.log("Event Triggered"); var eventSnapshot = event.data.val(); request.post({ url: 'http://MyCustomURL/endpoint/', form: { data: eventSnapshot.data } }, function(error, response, body){ console.log(response); }); }) 我正在使用Blaze的计划,这是完全正常的。 但问题是,当我创build批量数据(大约50到100个条目)时,对我的自定义url的HTTP请求无法正常工作。一个或两个HTTP请求正在被跳过。 […]

队列模式的函数式编程方法

处理asynchronous操作的队列是否可以在函数式编程的原则下实现? 这基本上是一个AsyncQueue。 var list = []; var inProgress = false; function Queue() {} Queue.prototype.enqueue = function(data) { list.push(data); if(!inProgress) { inProgress = true; start(list.shift()); } } function start(data) { // initiate some async activity, and call dequeue on completion } function dequeue() { if(list.length) { start(list.shift()); } else { isProgress = false; } } 很明显,有一种状态得到pipe理,无论是与list和inProgress […]

Google云端函数:无法validation请求

我正在使用Google Cloud Functions上的node.jsfunction将Pub / Sub消息保存到GCS(存储),但是它随机给我发送了一些消息的下列错误消息(大部分消息被成功写入): "Error: Could not authenticate request. Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information." 这是没有意义的,一旦在GCE上运行,将使用相同的服务帐户的所有消息,具有适当的权限,并且所有消息来自同一个来源,并去往相同的目的地。 有人可以启发我做什么? 我正在使用谷歌云/存储版本0.8.0。 /** * Triggered from a message on a Cloud Pub/Sub topic. * * @param {!Object} event The Cloud Functions event. * @param {!Function} The callback function. */ const bucketName = […]

Firebase的云端function – 了解哪个用户在onWrite中写入了数据

我试图做一个简单的消息应用程序。 在这个过程中,为了安全起见,我想使用Firebase的云functionfunction,这些function不应该在客户端执行。 我希望在用户需要的时候调用许多函数。 现在我试图做的方式是通过让客户端在单个父项下推入一些“函数请求”对象,这样onWrite函数将会触发,我可以parsing请求对象来执行函数(我之所以不使用http函数是因为我想要某种方式来安全地知道哪个用户发出了请求)。 问题是我无法在firebase的文档中find一个方法来知道哪个用户写了数据。 在index.js我有 exports.requestFunction = functions.database.ref('/function- requests/{pushId}') .onWrite(event => { // Parse event.data.val() for things like the function name and its // parameters. Then actually call the function. // Ideally I would also be able to parse event somehow to find the user // who saved the data. }); 请注意,我已经考虑将用户ID作为参数,但这太不安全了,因为任何用户都可以通过提供不同的uid来伪装成另一个用户。

Google云端函数 – 存储库部署 – 读取设置文件

这可能更多的是一个最佳实践问题,但我通过GitHub回购在多个环境中部署了云端function,每个都有自己的数据库秘密,这个云端function将写入(弹性search)。 如何获得在各自环境中访问设置文件的function? 使用Node.js,FYI。

调整图像大小并上传到服务器返回错误代码

这是我的代码: var dimensionsArray = [] dimensionsArray.push(new cardSet("L", 1000, 500, 200, 100)) dimensionsArray.push(new cardSet("M", 500, 200, 100, 50)) dimensionsArray.push(new cardSet("S", 200, 100, 50, 20)) function cardSet(name, dimSetWidth, dimSetHeight, dimPreviewWidth, dimPreviewHeight){ this.name = name this.dimSetWidth = dimSetWidth this.dimSetHeight = dimSetHeight this.dimPreviewWidth = dimPreviewWidth this.dimPreviewHeight = dimPreviewHeight } function insertBeforeLastOccurrence(strToSearch, strToFind, strToInsert) { var n = strToSearch.lastIndexOf(strToFind); if […]