- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 Firebase/Javascript,很高兴能够很快地建立功能。我已经找到了很多在线示例来入门,但一直无法找到解决以下情况的示例。上下文是一个移动应用程序,它将使用此构造通过一个类似于网络 Hook 的 API 记录事件:
exports.processEvent = functions.firestore.document('Events/{eventId}').onCreate(event => {
console.log('>>>>> Event triage triggered');
// grab the eventType and the payload to determine delegation path
const eventType = event.get("eventType");
const eventPayload = event.get("payload");
// delegate to the correct event handler
switch (eventType) {
case "ORDER":
console.log("=> Event:ORDER received: ", eventPayload);
handleOrderEvent(eventPayload);
break;
case "SHIP":
console.log("=> Event:SHIP received: ", eventPayload);
handleShipEvent(eventPayload);
break;
default:
console.error("=> Event:UNKNOWN received: ", eventPayload);
}
return true;
});
我将处理函数定义为:
exports.handleOrderEvent = function handleOrderEvent(payload) {
const orderDB = firestore.collection("Orders");
// Add the new order to the database
orderDB.add(payload)
.then(function(docRef) {
console.log("Created new Order: ", docRef.id);
return;
})
.catch(function(error) {
console.error("Error adding Order:", error);
return;
});
};
但是,在运行时我得到以下错误:
ReferenceError: handleOrderEvent is not defined
我只是不想在 processEvent() 函数中有一个巨大的 switch() 语句,所以试图将它分解成更易于管理的 block 。
我在阻止 processEvent() 函数找到它的处理函数声明中遗漏了什么?我试过将它放在 index.js 文件中的 processEvent() 函数之上。我刚刚声明了函数,但没有将其附加到导出。我确定这是基本的东西?
最佳答案
我认为您的导出不会自动提供给本地文件。所以这可能会更好:
function handleOrderEvent(payload) {
const orderDB = firestore.collection("Orders");
// Add the new order to the database
orderDB.add(payload)
.then(function(docRef) {
console.log("Created new Order: ", docRef.id);
return;
})
.catch(function(error) {
console.error("Error adding Order:", error);
return;
});
};
exports.handleOrderEvent = handleOrderEvent;
所以这首先定义了 handleOrderEvent
函数,您从 processEvent
导出调用它。然后它还导出 handleOrderEvent
,以便其他脚本(或 Cloud Functions 客户端)可以调用它。如果不需要后者,只需删除最后一行即可。
关于javascript - 在 Firebase 中添加便利功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53842699/
我的图书馆的几个部分都带有“便利”功能。例如,容器类可能具有解析字符串信息的功能。这些功能不一定一直都需要(或想要),因此我想将它们放在单独的文件中,以便可以根据用户的需要将它们包括或省略。 应该如何
我已经尝试在 Stack Overflow 和其他网站上搜索使用 Sets 与 Lists 的优缺点和便利,但我真的找不到明确的答案何时使用这个或那个。 从 Hibernate 的文档中,他们声明非重
我是一名优秀的程序员,十分优秀!