Firebase CLI는 명령줄에서 Firebase 제품 및 서비스를 관리하고 구성할 수 있는 도구입니다.
CLI는 새 Data Connect 프로젝트 만들기, 상응하는 로컬 작업 디렉터리 초기화, Data Connect 에뮬레이터 설정, Data Connect 리소스 나열, 클라이언트 SDK 생성 등 다양한 Data Connect 작업을 실행하는 데 사용할 수 있는 명령어를 제공합니다.
설정 명령어
Firebase 프로젝트에 Data Connect 추가
firebase init
firebase init
를 사용하여 새 로컬 프로젝트 구성을 설정합니다. 이 워크플로는 디렉터리에서 Firebase 구성 파일을 만들거나 업데이트합니다.
firebase init
firebase init
흐름에서는 서비스 및 데이터베이스를 설정하고, 원하는 경우 Data Connect 에뮬레이터를 설치하고 생성된 SDK를 구성하는 방법을 안내합니다.
서비스 및 데이터베이스 설정
제품 설정에 dataconnect
를 선택하면 CLI에 새 서비스 이름과 위치, 기존 PostgreSQL용 Cloud SQL 인스턴스를 연결할지 또는 새 인스턴스를 만들지 묻는 메시지가 표시됩니다.
기존 인스턴스가 연결된 경우 CLI는 IAM 인증 및 공개 IP 주소와 같은 호환되는 설정을 확인합니다.
Local Emulator Suite 설정
CLI 흐름에서는 Data Connect 에뮬레이터를 비롯한 에뮬레이터를 설정할 수 있습니다.
Data Connect 에뮬레이터 명령어
Data Connect 에뮬레이터 시작
emulators:start/exec
firebase emulators:start/exec
start
를 사용한 대화형 모드 또는 exec
를 사용한 스크립트 기반 비대화형 모드에서 Data Connect 에뮬레이터의 Local Emulator Suite 버전을 사용합니다.
스키마 및 커넥터 관리 명령어
이 섹션에는 스키마 및 커넥터를 관리하는 데 사용하는 명령어의 CLI 참조 정보가 포함되어 있습니다.
이러한 명령어와 관련된 사용 사례 및 권장사항은 스키마 및 커넥터 관리 가이드를 참고하세요.
스키마 및 커넥터 리소스 배포
deploy
firebase deploy
이 명령어는 firebase.json에 색인이 생성된 데이터 연결 서비스의 리소스를 배포합니다. 필요한 경우 스키마 마이그레이션이 실행됩니다.
명령어 | 설명 | |
---|---|---|
firebase deploy |
플래그 | 설명 |
–-only dataconnect |
이 프로젝트의 모든 Data Connect 서비스에 대한 스키마와 커넥터를 배포하지만 다른 Firebase 제품 리소스는 배포하지 않습니다. | |
–-only dataconnect:serviceId |
지정된 데이터 연결 서비스의 스키마와 커넥터를 배포합니다. | |
–-only dataconnect:serviceId:connectorId |
지정된 Data Connect 서비스에 단일 커넥터를 배포합니다. | |
–-only dataconnect:serviceId:schema |
지정된 Data Connect 서비스의 스키마를 배포합니다. |
–-only
플래그를 사용하면 쉼표로 구분된 값을 전달하여 원하는 리소스 하위 집합을 배포할 수 있습니다.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
데이터 연결 서비스, 스키마, 커넥터 나열
dataconnect:services:list
firebase dataconnect:services:list
이 명령어는 프로젝트에 배포된 서비스, 스키마, 커넥터에 관한 기본 정보를 출력합니다.
SQL 스키마 비교 및 마이그레이션
dataconnect:sql:diff
firebase dataconnect:sql:diff
이 명령어는 서비스의 로컬 스키마를 해당 Cloud SQL 데이터베이스의 현재 스키마와 비교합니다. 데이터베이스를 새 스키마로 마이그레이션하기 위해 실행할 명령어를 출력합니다.
명령어 | 설명 | |
---|---|---|
firebase dataconnect:sql:diff |
플래그/매개변수 | 설명 |
serviceId |
서비스를 지정합니다. 생략하면 firebase.json의 모든 서비스에 대한 차이를 출력합니다. |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
이 명령어는 서비스의 Cloud SQL 데이터베이스에 로컬 스키마 변경사항을 적용합니다.
기본 dataconnect.yaml
파일을 사용하여 새 로컬 Data Connect 프로젝트를 설정하면 dataconect:sql:migrate
명령어의 동작은 변경사항을 실행하기 전에 필요한 변경사항을 메시지로 표시한 다음 선택적 변경사항을 메시지로 표시합니다. 엄격 모드 또는 호환 모드로 스키마 이전에 설명된 대로 dataconnect.yaml
구성을 업데이트하여 선택적 변경사항을 항상 포함하거나 무시하도록 이 동작을 수정할 수 있습니다.
대화형 환경에서 CLI는 각 마이그레이션 SQL 문을 표시하고(파괴적인지 여부 포함) 적용할 변경사항을 묻는 메시지를 표시합니다.
--force
플래그를 전달하면 모든 메시지를 수락하는 것과 같습니다.
대화형이 아닌 환경:
--force
가 없으면 비파괴 변경사항만 적용됩니다. 파괴적인 변경사항이 있는 경우 CLI가 변경사항 없이 중단됩니다.--force
를 사용하면 모든 변경사항이 적용됩니다. 여기에 파괴적인 변경사항이 포함된 경우--force
플래그가 제공되지 않는 한 변경사항이 출력되고 계속할지 묻는 메시지가 표시됩니다.
명령어 | 설명 | |
---|---|---|
firebase dataconnect:sql:migrate |
플래그 | 설명 |
serviceId |
지정된 서비스의 데이터베이스를 이전합니다. 프로젝트에 서비스가 하나만 있는 경우 serviceId가 추론됩니다. | |
–-force |
프롬프트를 자동으로 수락합니다. |
다른 --only
플래그와 마찬가지로 쉼표로 구분하여 여러 서비스를 제공할 수 있습니다.
엄격 모드 또는 호환 모드로 스키마 이전
Data Connect 스키마 이전에는 strict(엄격) 및 compatible(호환)라는 두 가지 스키마 유효성 검사 모드가 있습니다. 엄격 모드 유효성 검사를 사용하려면 애플리케이션 스키마를 배포하기 전에 데이터베이스 스키마가 애플리케이션 스키마와 정확하게 일치해야 합니다. 호환 모드 유효성 검사를 위해서는 데이터베이스 스키마가 애플리케이션 스키마와 호환되어야 합니다. 즉, 애플리케이션 스키마에서 사용되지 않는 데이터베이스의 요소는 수정되지 않은 상태로 유지됩니다.
이러한 스키마 유효성 검사 모드와 스키마 이전 권장사항은 스키마 및 커넥터 관리 가이드에서 다룹니다.
유효성 검사 모드는 dataconnect.yaml
파일의 schemaValidation
키를 사용하여 정의됩니다. schemaValidation
가 지정되지 않은 경우 CLI는 호환되는 변경사항을 적용하고 엄격한 변경사항을 실행하기 전에 메시지를 표시합니다. 구성 참조를 참고하세요.
SDK 명령어
SDK 생성
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
이 명령어는 connector.yaml에 선언된 유형 SDK를 생성합니다.
웹 SDK, Android SDK, iOS SDK를 사용하는 방법에 관한 가이드를 참고하세요.
명령어 | 설명 | |
---|---|---|
firebase dataconnect:sdk:generate |
플래그 | 설명 |
–-watch |
스키마 및 커넥터 GQL 파일에 변경사항을 저장할 때마다 프로세스를 실행 상태로 유지하고 새 SDK를 생성합니다. 생성에 실패하면 오류가 stdout에 출력되고 생성된 코드는 변경되지 않으며 명령어는 계속 실행됩니다. |
|
–-only connectorId:platform |
단일 플랫폼 및 단일 커넥터의 SDK만 생성합니다. |
–only
플래그를 사용하면 쉼표로 구분된 값을 전달할 수 있습니다.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Cloud SQL 관리 명령어
Cloud SQL에 SQL 역할 부여
dataconnect:sql:grant
firebase dataconnect:sql:grant
Data Connect는 Cloud SQL에 호스팅된 자체 PostgreSQL 인스턴스에서 작동합니다. 경우에 따라 데이터베이스에 직접 액세스하여 Data Connect 앱에서 생성된 데이터를 쿼리하거나 업데이트해야 할 수 있습니다. 이렇게 하려면 이 섹션에 정의된 역할 중 하나를 필요한 사용자 또는 서비스 계정에 부여해야 합니다.
부여된 역할에 관한 자세한 내용은 PostgreSQL 사용자 역할을 참고하세요.
역할 | SQL 역할 | 권한 | 용도 | 부여 가능 |
---|---|---|---|---|
리더 | firebasereader_<db_name>_<schema_name> |
데이터베이스에 대한 읽기 전용 액세스 권한입니다. 지정된 스키마 내의 모든 테이블에 대해 SELECT 작업을 실행할 수 있습니다. |
데이터 검색은 필요하지만 수정은 필요하지 않은 사용자 또는 서비스에 적합합니다. | 예 |
작가 | firebasewriter_<db_name>_<schema_name> |
데이터베이스에 대한 읽기 및 쓰기 액세스 권한입니다. 스키마 내의 모든 테이블에서 SELECT , INSERT , UPDATE , DELETE , TRUNCATE 작업을 실행할 수 있습니다. |
데이터베이스 내에서 데이터를 수정해야 하는 사용자 또는 서비스에 적합합니다. | 예 |
소유자 | firebaseowner_<db_name>_<schema_name> |
스키마 소유자 스키마의 모든 테이블과 시퀀스에 대한 모든 권한을 보유합니다. |
이 역할은 IAM roles/cloudsql.client 역할과 함께 데이터베이스에서 이전을 실행할 수 있는 권한을 부여합니다. 예를 들어 firebase dataconnect:sql:migrate 를 호출할 때 |
예 |
수퍼유저 | cloudsqlsuperuser |
데이터베이스에 대한 전체 권한이 있는 내장 수퍼유저 역할입니다. 소유자 권한 외에도 스키마를 만들고, 스키마를 삭제하고, 확장 프로그램을 설치하고, 기타 관리 작업을 실행할 수 있습니다. 'firebasesuperuser'로 로그인하여 CLI에서 액세스합니다. |
확장 프로그램을 설치하고, 초기 스키마를 만들고, 부여 가능한 SQL 역할을 다른 사용자에게 부여하는 데 필요합니다. 관리자가 아닌 사용자에게 최고 관리자 권한이 필요한 경우 이전이 실패하고 사용자에게 데이터베이스 관리자 ( roles/cloudsql.admin 가 있는 사용자)에게 권한이 있는 SQL 명령어를 실행해 달라고 요청하라는 메시지가 표시됩니다. |
roles/cloudsql.admin 를 사용하는 사용자에게 부여되며 Firebase CLI에서 직접 부여할 수 없습니다. |
명령어 | 설명 | |
---|---|---|
firebase dataconnect:sql:grant |
플래그/매개변수 | 설명 |
-R, --role 역할 |
부여할 SQL 역할(소유자, 작성자, 독자 중 하나) | |
-E, --email email_address |
역할을 부여할 사용자 또는 서비스 계정의 이메일입니다. |
전체 옵션
다음 전역 옵션은 모든 명령어에 적용됩니다.
--json
는 다른 도구에서 파싱할 수 있도록 CLI 출력을 JSON으로 전환합니다.--noninteractive
및--interactive
는 필요에 따라 TTY가 아닌 환경의 자동 감지를 재정의합니다.