myiam_firebase_flutter_sdk

MyIAM 인증과 Firebase 서비스를 연결하는 Flutter SDK입니다.

MyIAM OAuth2 로그인 후 자동으로 Firebase Custom Token을 발급받아 Firestore, Storage 등 Firebase 서비스에 접근할 수 있게 합니다.

설치

dependencies:
  myiam_firebase_flutter_sdk: ^0.1.0

사용법

import 'package:myiam_firebase_flutter_sdk/myiam_firebase_flutter_sdk.dart';

// Riverpod에서 통합 인증 상태 감시
final authState = ref.watch(firebaseAuthProvider);

switch (authState) {
  FirebaseAuthLoading() => // 로딩
  FirebaseAuthAuthenticated() => // 인증 완료 (MyIAM + Firebase)
  FirebaseAuthUnauthenticated() => // 미인증
  FirebaseAuthError() => // 에러
}

// 토큰 갱신
await ref.read(firebaseAuthProvider.notifier).refreshToken();

// 로그아웃 (MyIAM + Firebase 양쪽)
await ref.read(firebaseAuthProvider.notifier).logout();

동작 방식

  1. myiam_flutter_sdk의 authNotifierProvider를 감시
  2. MyIAM 인증 성공 시 자동으로 Cloud Function(mintFirebaseToken) 호출
  3. Firebase Custom Token 발급 → signInWithCustomToken()
  4. Firebase uid = MyIAM service_user_uid

Cloud Function

이 SDK는 서버 측에 mintFirebaseToken Cloud Function이 배포되어 있어야 합니다. 구현 예시는 with-firebase 샘플을 참고하세요.

커스터마이징

// Cloud Function 이름 변경
ProviderScope(
  overrides: [
    firebaseAuthBridgeProvider.overrideWithValue(
      FirebaseAuthBridge(functionName: 'myCustomFunction'),
    ),
  ],
  child: const MyApp(),
)