확장 이벤트 소개
이벤트란 무엇입니까?
간단히 말해서 이벤트는 pub-sub 이벤트입니다. Eventarc 위에 구축되어 개발자는 분리된 코드를 작성하여 미리 정의된 특정 구독을 수신할 수 있습니다.
이 업데이트는 Firebase admin SDK 의 최신10.2.0
릴리스에서 사용할 수 있게 되었습니다.
Firebase 확장 프로그램
그래 좋아! 그렇다면 이것을 Firebase에서 어떻게 사용합니까?
이벤트 게시
주제는 pub-sub 생태계의 근본적인 부분입니다. 다른 구현과 마찬가지로 Firebase Extensions에서 완전히 맞춤설정할 수 있습니다.
이 예에서는 Stripe Payment Extension 업데이트를 사용하여 Stripe Webhook 이벤트를 향상할 것입니다. 이 예에서는 제품이 생성된 시점에 초점을 맞출 것입니다.
이 확장에는 새로운 일련의 주제가 정의되었습니다.
events:
- type: com.stripe.v1.product.created
description: Occurs whenever a product is created.
- type: com.stripe.v1.product.deleted
description: Occurs whenever a product is deleted.
확장 구성
Events
는 입력 유형이며 이를 통해 사용자 정의된 이벤트 목록을 정의할 수 있습니다.
개별 이벤트 주제를 정의하려면:
Type
는 개발자가 구독할 수 있는 주제 이름이며, 이 가이드에서는 주제 이름을 정의하는 방법에 대한 예를 제공합니다.
{provider_id}.{version}.{topic_name}
그래 좋아! 그렇다면 이것을 Firebase에서 어떻게 사용합니까?
이벤트 게시
주제는 pub-sub 생태계의 근본적인 부분입니다. 다른 구현과 마찬가지로 Firebase Extensions에서 완전히 맞춤설정할 수 있습니다.
이 예에서는 Stripe Payment Extension 업데이트를 사용하여 Stripe Webhook 이벤트를 향상할 것입니다. 이 예에서는 제품이 생성된 시점에 초점을 맞출 것입니다.
이 확장에는 새로운 일련의 주제가 정의되었습니다.
events:
- type: com.stripe.v1.product.created
description: Occurs whenever a product is created.
- type: com.stripe.v1.product.deleted
description: Occurs whenever a product is deleted.
확장 구성
Events
는 입력 유형이며 이를 통해 사용자 정의된 이벤트 목록을 정의할 수 있습니다.개별 이벤트 주제를 정의하려면:
Type
는 개발자가 구독할 수 있는 주제 이름이며, 이 가이드에서는 주제 이름을 정의하는 방법에 대한 예를 제공합니다.{provider_id}.{version}.{topic_name}
ProviderId
(필수): 이벤트 유형에는 고유한 정의로 공급자의 접두어가 포함되어야 합니다. Version
(권장): 고유한 버전 번호입니다. TopicName
: 이벤트에 대한 고유한 관련 이름입니다. Description
이벤트의 의도를 쉽게 설명하는 자유 텍스트 설명입니다.채널 설정
이벤트를 게시하려면 먼저 Firebase admin SDK가 최소 버전
10.2.0
인지 확인하세요.{
"firebase-admin": "^10.2.0",
}
이렇게 하면
eventarc
가져오기에 대한 모듈 액세스가 제공됩니다.import { getEventarc } from 'firebase-admin/eventarc';
다음으로 이벤트를 게시하려면 채널이 필요합니다. Admin SDK는 채널 생성을 위한 지원 인수를 제공하는 일련의 환경 변수를 생성합니다.
const eventChannel =
process.env.EVENTARC_CHANNEL &&
getEventarc().channel(process.env.EVENTARC_CHANNEL, {
allowedEventTypes: process.env.EXT_SELECTED_EVENTS,
});
EVENTARC_CHANNEL
확장 구성에서 생성된 정규화된 리소스 이름을 포함합니다. 이것은 projects/{project}/locations/{location}/channels/{channel-id}
형식을 따릅니다.EXT_SELECTED_EVENTS
확장 YAML 구성에 정의된 모든 이벤트 주제 목록을 포함합니다.이벤트 푸시
채널이 생성되면 이제 지정된 이벤트 유형으로 정보를 보낼 수 있습니다.
await eventChannel?.publish({
type: `com.stripe.v1.${event.type}`,
data: event.data.object,
});
게시는 확장 YAML 구성에 정의된 유형과 일치하는
promise
가 필요한 type
기반 기능입니다.Data
는 게시된 이벤트의 일부로 보내려는 정보이며, 이 경우 관련 Stripe webhooks에서 결과를 전달합니다.이벤트 구독
이제 게시 이벤트를 성공적으로 설정했으므로 이제 클라우드 기능을 수신하고 확장하여 유용한 작업을 수행하려고 합니다!
원래 설정의 일부로 Stripe 확장이 관련 Firestore 및 Stripe 참조를 이미 업데이트했습니다.
이 예에서는 관련 데이터와 함께 이벤트가 완료되었음을 알리는 알림
Slack
을 보낼 것입니다!다음을 사용하여 함수를 배포합니다source.
설정이 완료되면 Stripe에 새 제품을 추가하기만 하면 Slack에서 다음 업데이트를 받을 수 있습니다...
다음은?
확장 프로그램의 이벤트는 무한한 가능성을 허용합니다. 무엇을 만들고 있는지 또는 이벤트를 통해 개발을 더 쉽게 할 수 있는 방법을 알려주세요!
, 및 에서 우리를 팔로우하거나 newsletter에 가입하여 최신 업데이트를 받을 수 있습니다.
추신: 이 게시물은 처음에 invertase.io의 수석 개발자인 에 의해 작성되었습니다. 원본 콘텐츠를 찾을 수 있습니다here.
Reference
이 문제에 관하여(확장 이벤트 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mhadaily/introducing-extension-events-16f4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(확장 이벤트 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mhadaily/introducing-extension-events-16f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)