Firebase Data Connect 시작하기

이 빠른 시작에서는 다음과 같은 방법을 학습합니다.

  • Firebase 프로젝트에 Firebase 데이터 연결을 추가합니다.
  • 프로덕션 인스턴스로 작동하도록 Visual Studio Code 확장 프로그램이 포함된 개발 환경을 설정합니다.
  • 그 후 다음과 같은 방법을 알려드립니다.
    • 이메일 앱에 대한 스키마를 만들고 프로덕션에 배포합니다.
    • 스키마의 쿼리 및 변형을 정의합니다.
    • 최종 프로토타입을 프로덕션에 배포합니다.

기본 요건

이 빠른 시작을 사용하려면 다음이 필요합니다.

프로젝트에 데이터 연결을 추가하고 데이터 소스 만들기

  1. Firebase 프로젝트를 아직 만들지 않았다면 만듭니다.
    1. Firebase Console에서 프로젝트 추가를 클릭한 다음 화면에 표시된 안내를 따릅니다.
  2. 프로젝트를 Blaze 요금제로 업그레이드하세요. 이렇게 하면 PostgreSQL용 Cloud SQL 인스턴스를 만들 수 있습니다.

  3. Firebase Console의 데이터 연결 섹션으로 이동하여 제품 설정 워크플로를 따릅니다.

  4. PostgreSQL용 CloudSQL 데이터베이스의 위치를 선택하세요.

  5. 나중에 확인할 수 있도록 프로젝트, 서비스, 데이터베이스 이름과 ID를 기록해 둡니다.

  6. 나머지 설정 과정을 따른 다음 완료를 클릭합니다.

개발 환경 선택 및 설정

먼저 Visual Studio Code에서 앱의 프로토타입을 제작하여 Data Connect를 시작합니다.

필요한 경우 Data Connect 에뮬레이터를 사용한 로컬 개발용 로컬 PostgreSQL 데이터베이스를 설치할 수 있습니다. 이 설정은 빠른 시작 가이드의 끝부분에서 다룹니다.

Data Connect는 프로토타입 제작을 위한 두 가지 개발 환경을 지원합니다.

  • 또는 Kotlin Android 개발자는 PostgreSQL용 Cloud SQL 인스턴스에 연결하는 동안 로컬로 스키마 및 작업의 프로토타입을 만들거나 선택적으로 PostgreSQL을 로컬로 실행할 수 있습니다.
  • 개발자는 IDX를 사용하여 PostgreSQL이 포함된 사전 구성된 IDX 템플릿, Data Connect 에뮬레이터가 포함된 VS Code 확장 프로그램, 자동으로 설정된 빠른 시작 코드를 사용하여 IDX 작업공간에서 프로토타입을 제작할 수 있습니다.

VS Code 개발

IDX를 사용하는 대신 로컬에서 개발하려면 개발을 빠르게 반복할 수 있도록 Firebase VS Code 확장 프로그램을 설정하세요.

  1. 로컬 프로젝트의 새 디렉터리를 만듭니다.
  2. 새 디렉터리에서 VS Code를 엽니다.
  3. Firebase 저장소에서 VSIX 패키지로 번들된 확장 프로그램을 다운로드합니다.
  4. VS Code의 View 메뉴에서 Extensions를 선택합니다.
  5. 확장 프로그램 패널 제목 표시줄에서 메뉴 아이콘 more_horiz를 클릭한 후 VSIX에서 설치...를 따릅니다.

IDX 개발

IDX는 웹 앱 개발에 최적화된 환경입니다. Kotlin Android 개발자라면 VS Code 개발 탭의 단계를 따르세요.

Data Connect IDX 템플릿을 설정하는 방법은 다음과 같습니다.

  1. Project IDX 사이트에서 템플릿에 액세스합니다.
  2. 설정 흐름을 따릅니다.

로컬 프로젝트 설정

일반 안내에 따라 CLI를 설치합니다.

그런 다음 Firebase Data Connect 실험을 사용 설정합니다.

firebase experiments:enable dataconnect

로컬 프로젝트를 설정하려면 프로젝트 디렉터리를 초기화합니다.

프로젝트 디렉터리 설정

프로젝트 디렉터리를 초기화합니다.

VS Code 왼쪽 패널에서 Firebase 아이콘을 클릭하여 Firebase VS Code 확장 프로그램 UI를 엽니다.

Firebase 확장 프로그램 UI에서:

  1. 로그인되어 있는지 확인합니다.
  2. Google Cloud 콘솔을 사용하여 데이터베이스 프로비저닝을 포함한 데이터 연결 설정 흐름이 완료되었는지 확인합니다.
  3. firebase init 실행 버튼을 클릭합니다.
  4. VS Code 하단 패널의 Terminal 탭에서 프롬프트를 확인합니다.
  5. 이 디렉터리에서 사용할 기능으로 데이터 연결을 선택하세요.
  6. 메시지가 표시되면 앞서 콘솔에서 만든 Data Connect 프로젝트의 프로젝트, 서비스, 데이터베이스 ID를 입력합니다.

이 흐름은 firebase.json.firebaserc 파일과 중요한 dataconnect.yamlconnector.yaml 파일을 포함한 dataconnect 하위 디렉터리를 로컬 작업 디렉터리에 만듭니다.

데이터 연결 스키마 및 쿼리 만들기

설정이 완료되었습니다. 이제 Data Connect로 개발을 시작할 수 있습니다.

GraphQL을 사용하여 사용자와 이메일을 모델링합니다. 매체를 업데이트할 위치:

  • /dataconnect/schema/schema.gql
  • /dataconnect/default-connector/queries.gql

스키마 개발 시작

Firebase 프로젝트 디렉터리에서 dataconnect 폴더를 확인합니다. 여기에서 GraphQL을 사용하여 Cloud SQL 데이터베이스의 데이터 모델을 정의합니다.

/dataconnect/schema/schema.gql 파일에서 사용자와 이메일을 포함하는 스키마 정의를 시작합니다.

사용자

Data Connect에서 GraphQL 필드는 열에 매핑됩니다. 사용자에게는 uid, nameaddress 이메일이 있습니다. 데이터 연결은 여러 원시 데이터 유형(StringDate)을 인식합니다.

다음 스니펫을 복사하거나 파일에서 해당하는 줄의 주석 처리를 삭제합니다.

# File `/dataconnect/schema/schema.gql`

type User @table(key: "uid") {
   uid: String!
   name: String!
   address: String!
}

아무것도 제공되지 않으면 기본적으로 Firebase Data Connect에서 UUID id 키를 추가합니다. 그러나 이 경우에는 @table(key: "uid") 지시어를 통해 uid를 기본 키로 지정할 수 있습니다.

이메일

이제 사용자가 있으므로 이메일을 모델링할 수 있습니다. 여기에서 이메일 데이터의 일반적인 필드 (또는 열)를 추가할 수 있습니다. 데이터 연결을 사용하여 기본 키를 관리할 수 있으므로 이번에는 기본 키 추가를 생략합니다.

# File `/dataconnect/schema/schema.gql`

type Email @table {
   subject: String!
   sent: Date!
   text: String!
   from: User!
}

from 필드는 User 유형에 매핑됩니다. Data Connect는 EmailUser 간의 관계임을 이해하고 이 관계를 관리합니다.

프로덕션에 스키마 배포

Firebase VS Code 확장 프로그램을 사용하여 프로덕션 데이터베이스 작업을 하고 있으므로 계속하기 전에 스키마를 배포해야 합니다.

  1. Firebase VS Code 확장 프로그램을 사용하여 배포할 수 있습니다.
    • 확장 프로그램 UI의 Firebase Data Connect 패널에서 배포를 클릭합니다.
  2. 또는 Firebase CLI를 사용할 수 있습니다.

    firebase deploy
    
  3. 확장 프로그램 또는 CLI 흐름에서 스키마 변경사항을 검토하고 잠재적으로 파괴적인 수정사항을 승인해야 할 수 있습니다. 다음 작업을 수행하라는 메시지가 표시됩니다.

    • firebase dataconnect:sql:diff를 사용하여 스키마 변경사항 검토
    • 변경사항이 만족스러우면 firebase dataconnect:sql:migrate로 시작된 흐름을 사용하여 적용합니다.

변형을 실행하여 테이블에 데이터 추가

VS Code 편집기 패널에서 /dataconnect/schema/schema.gql의 GraphQL 유형 위에 CodeLens 버튼이 표시됩니다.

개발 시간 쿼리 및 변형

이러한 CodeLens 버튼과 연결된, 이름이 지정되지 않은 작업은 빠르고 유용합니다. 이 경우 테이블에 데이터를 추가하는 작업입니다. Data Connect는 GraphQL 변형을 사용하여 데이터베이스 작업을 수행할 수 있는 방법과 사용자를 설명합니다. 이 버튼을 사용하면 빠른 데이터 시드를 위한 개발 시간 작업이 생성됩니다.

스키마를 프로덕션에 배포했으므로 생성된 파일의 schema.gql에 있는 데이터 추가 CodeLens 버튼과 실행 (프로덕션) 버튼을 사용하여 백엔드에서 이러한 작업을 수행할 수 있습니다.

UserEmail 테이블에 레코드를 추가하려면 다음 안내를 따르세요.

  1. schema.gql에서 User 유형 선언 위에 있는 데이터 추가 버튼을 클릭합니다.
  2. 생성된 User_insert.gql 파일에서 세 필드의 데이터를 하드 코딩합니다.
  3. 실행 (프로덕션) 버튼을 클릭합니다.
    Firebase Data Connect의 코드 렌즈 실행 버튼
  4. 이전 단계를 반복하여 Email 테이블에 레코드를 추가하고 생성된 Email_insert 변형의 메시지에 따라 fromUid 필드에 사용자의 uid를 제공합니다.

이메일을 나열하는 쿼리 작성

이제 재미있는 부분은 쿼리입니다. 개발자는 GraphQL 쿼리보다는 SQL 쿼리를 작성하는 데 익숙하므로 처음에는 약간 다르게 느껴질 수 있습니다. 그러나 GraphQL은 원시 SQL보다 훨씬 간결하고 유형 안전합니다. VS Code 확장 프로그램은 개발 환경을 편리하게 만들어 줍니다

/dataconnect/default-connector/queries.gql 파일 수정을 시작합니다. 모든 이메일을 가져오려면 다음과 같은 쿼리를 사용하세요.

# File `/dataconnect/default-connector/queries.gql`

query ListEmails @auth(level: NO_ACCESS) {
  emails {
    id, subject, text, sent
    from {
      name
    }
  }
}

근처의 CodeLens 버튼을 사용하여 쿼리를 실행합니다.

여기서 정말 흥미로운 기능은 데이터베이스 관계를 그래프처럼 취급하는 기능입니다. 이메일에는 사용자를 참조하는 from 필드가 있으므로 이 필드에 중첩하여 사용자에 대한 정보를 다시 가져올 수 있습니다.

완성된 프로토타입을 프로덕션에 배포

개발 반복 작업을 수행했습니다. 이제 스키마에서 한 것처럼 Firebase Extensions UI 또는 Firebase CLI를 사용하여 스키마, 데이터, 쿼리를 서버에 배포할 수 있습니다.

데이터 연결 서비스가 배포되면 클라이언트의 작업을 처리할 수 있습니다. PostgreSQL용 Cloud SQL 인스턴스가 최종 배포되어 생성된 스키마 및 데이터로 업데이트됩니다.

(선택사항) PostgreSQL 로컬 설치

PostgreSQL을 로컬로 설치하고 에뮬레이터와 통합하면 완전한 로컬 개발 환경에서 프로토타입을 제작할 수 있습니다.

PostgreSQL의 새 인스턴스를 설치하거나 기존 인스턴스를 사용할 수 있습니다.

PostgreSQL 설치

플랫폼에 맞는 안내에 따라 PostgreSQL 버전 15.x를 설치합니다.

설치 시퀀스 중에 호스트 이름, 포트, 사용자 이름, 비밀번호, 관련 매개변수 출력을 확인합니다.

PostgreSQL 인스턴스에 연결하려면 에뮬레이터에 다음이 필요합니다.

  • 이러한 설정 구성 매개변수는
  • dataconnect.yaml의 데이터베이스 이름 및 로컬 인스턴스에서 초기화된 상응하는 이름의 데이터베이스

연결 문자열로 .firebaserc 업데이트

로컬 PostgreSQL 사용자 이름 및 비밀번호를 포함한 로컬 PostgreSQL 구성 세부정보를 사용하여 .firebaserc 파일의 다음 키에 추가합니다.

{
  "projects": {},
  ...,
  ...,
  "dataconnectEmulatorConfig": {
    "postgres": {
      "localConnectionString": "postgresql://postgresusername:postgrespassword@localhost:5432?sslmode=disable"
    }}
}

로컬 PostgreSQL 인스턴스에 연결

이 구성을 완료한 후 로컬 데이터베이스에 연결하려면 다음 단계를 따르세요.

  1. VS Code의 왼쪽 패널에서 Firebase 아이콘을 클릭하여 Firebase VS Code 확장 프로그램 UI를 엽니다.
  2. 로컬 PostgreSQL에 연결 버튼을 클릭합니다.

다음 단계