본문 바로가기
Flutter/Firebase

플러터에서 Firebase Pub/Sub 개발을 위한 에뮬레이터 설치 및 사용 방법 가이드

by Maccrey Coding 2024. 9. 2.
반응형

 

Firebase Pub/Sub는 메시지 기반 시스템을 구현할 때 유용한 서비스로, 다양한 시스템 간의 비동기 메시징을 가능하게 합니다.

Firebase Pub/Sub의 에뮬레이터를 사용하면 로컬 환경에서 Pub/Sub의 기능을 테스트하고 개발할 수 있습니다.

이 가이드는 플러터에서 Firebase Pub/Sub 에뮬레이터를 설치하고 사용하는 방법을 단계별로 안내합니다.

1. Firebase Pub/Sub 에뮬레이터란?

Firebase Pub/Sub 에뮬레이터는 로컬 환경에서 Pub/Sub 서비스의 동작을 테스트할 수 있는 도구입니다. 실제 클라우드 서비스를 사용하지 않고도 메시지 발행 및 구독 기능을 개발하고 검증할 수 있습니다.

2. Firebase Pub/Sub 에뮬레이터 설치하기

에뮬레이터를 설치하고 설정하는 과정은 다음과 같습니다.

1) Node.js 및 Firebase CLI 설치

Firebase Pub/Sub 에뮬레이터를 사용하기 위해 Node.js와 Firebase CLI가 필요합니다. Node.js가 설치되어 있지 않다면 Node.js 공식 웹사이트에서 다운로드하여 설치하세요.

그 다음, Firebase CLI를 설치합니다. 터미널에서 다음 명령어를 입력합니다.

npm install -g firebase-tools

2) Firebase 프로젝트 초기화

Firebase 프로젝트 디렉터리로 이동한 후, Firebase CLI를 사용해 프로젝트를 초기화합니다. 터미널에서 다음 명령어를 실행합니다.

firebase init

여기서, Emulators 항목을 선택하고, Pub/Sub 에뮬레이터를 설정합니다.

3) Firebase Pub/Sub 에뮬레이터 설정

Firebase 프로젝트 설정 파일(firebase.json)에서 Pub/Sub 에뮬레이터를 설정합니다. 파일에 다음과 같이 추가합니다.

{
  "emulators": {
    "pubsub": {
      "port": 8085
    }
  }
}

여기서 8085는 Pub/Sub 에뮬레이터의 기본 포트 번호입니다. 필요에 따라 다른 포트 번호를 사용할 수도 있습니다.

3. Firebase Pub/Sub 에뮬레이터 시작하기

Firebase Pub/Sub 에뮬레이터를 실행하려면, 터미널에서 다음 명령어를 입력합니다.

firebase emulators:start

이 명령어를 실행하면 Firebase Pub/Sub 에뮬레이터가 로컬 환경에서 시작됩니다. 에뮬레이터가 실행되면 설정한 포트 번호를 통해 접근할 수 있습니다.

4. 플러터에서 Firebase Pub/Sub 에뮬레이터 연결하기

에뮬레이터가 실행되고 나면, 플러터 애플리케이션에서 Firebase Pub/Sub 에뮬레이터를 사용하기 위해 다음과 같이 설정합니다.

1) Firebase 패키지 설치

플러터 애플리케이션에서 Firebase Pub/Sub을 사용하기 위해 firebase_core와 firebase_messaging 패키지를 pubspec.yaml에 추가합니다.

dependencies:
  firebase_core: latest_version
  firebase_messaging: latest_version

2) Firebase 초기화 및 에뮬레이터 연결

플러터 애플리케이션의 메인 파일(main.dart)에서 Firebase를 초기화하고, 에뮬레이터에 연결합니다.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  // Firebase Pub/Sub 에뮬레이터에 연결
  FirebaseMessaging.instance.usePublicVapidKey('YOUR_PUBLIC_VAPID_KEY');

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Firebase Pub/Sub Emulator Example'),
        ),
        body: Center(
          child: Text('Firebase Pub/Sub Emulator is set up!'),
        ),
      ),
    );
  }
}

여기서 'YOUR_PUBLIC_VAPID_KEY'는 Firebase Cloud Messaging의 공용 VAPID 키입니다. 이 값은 Firebase 콘솔에서 확인할 수 있습니다.

5. Firebase Pub/Sub 기능 테스트하기

이제 Firebase Pub/Sub 에뮬레이터를 통해 다양한 메시징 기능을 테스트할 수 있습니다. 예를 들어, 메시지를 발행하고 구독하는 기능을 구현하여 테스트해 볼 수 있습니다.

1) 메시지 발행

다음 코드를 사용하여 메시지를 발행할 수 있습니다.

import 'package:firebase_messaging/firebase_messaging.dart';

void publishMessage(String topic, String message) async {
  try {
    final messaging = FirebaseMessaging.instance;
    await messaging.subscribeToTopic(topic);
    await messaging.sendMessage(
      topic: topic,
      data: {'message': message},
    );
    print('Message published to topic: $topic');
  } catch (e) {
    print('Error publishing message: $e');
  }
}

2) 메시지 수신

다음 코드를 사용하여 메시지를 수신할 수 있습니다.

void setupMessageHandler() {
  FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    print('Message received: ${message.notification?.title}');
  });
}

이 코드를 사용하여 Pub/Sub 에뮬레이터에서 발행된 메시지를 수신하고, 애플리케이션 내에서 해당 메시지를 처리할 수 있습니다.

 

 

Firebase Pub/Sub 에뮬레이터를 사용하면 플러터 개발자들은 로컬 환경에서 안전하고 효율적으로 메시징 기능을 개발하고 테스트할 수 있습니다.

에뮬레이터의 설치와 설정 방법을 통해 실제 Firebase 서비스에 영향을 미치지 않으면서도 효과적인 개발과 디버깅이 가능합니다.

이번 가이드가 여러분의 개발에 도움이 되기를 바랍니다!

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형