확장 이벤트 소개

6416 단어 firebaseflutter
지난 주 Google IO의 모든 흥미로운 소식 중에서 특히 Firebase 커뮤니티에서 우리에게 눈에 띄는 한 가지는 Extensions 이벤트였습니다! 여기에서는 더 나은 이해를 위해 몇 가지 사용 사례를 살펴보면서 이것이 Firebase Extensions에 어떤 의미가 있는지 논의할 것입니다.

이벤트란 무엇입니까?



간단히 말해서 이벤트는 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}
  • 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.

    좋은 웹페이지 즐겨찾기