gpt4 book ai didi

javascript - 在 Firebase 中添加便利功能

转载 作者:行者123 更新时间:2023-11-30 19:57:12 24 4
gpt4 key购买 nike

我刚刚开始使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com