python firestore API에서 에뮬레이터 사용하기#

파이썬 프로그램을 개발하다보면 인터넷에 접속해있지 않은 상황에서 로컬 컴퓨터에 실행된 에뮬레이터나 개발 서버를 사용해야 할 때가 있습니다. 웹 서버 정도는 인터넷에 연결되어 있지 않아도 금방 띄울 수 있지만 Google Firestore 같은 것들은 에뮬레이터를 사용해야만 데이터에 접근할 수 있습니다.

이 글에서는 firestore 에뮬레이터가 설치되어 있다고 가정합니다. 설치할 패키지는 다음과 같습니다.

google-cloud-firestore

아래 코드는 실제 구글 Firestore API를 사용해 프로그램에 접근했을 때 로컬 서버에 실행된 에뮬레이터에 접근하도록 만든 코드입니다.

import grpc
import firestore
from google.cloud.firestore_v1.services.firestore import client as firestore_client
from google.cloud.firestore_v1.services.firestore.transports.grpc import FirestoreGrpcTransport

channel = grpc.insecure_channel("localhost:8080")
transport = FirestoreGrpcTransport(channel=channel)

firestore_db = firestore.Client()
firestore_db._firestore_api_internal = firestore_client.FirestoreClient(transport=transport)

에뮬레이터에 등록된 데이터만 추출해서 확인이 필요했는데 구글 클라우드 문서엔 관련 내용을 찾을 수 없어서 여기저기 뒤적거려보니 스택오버플로우에 4년전에 달린 글이 있어 그대로 적용해봤더니 API가 여러모로 업데이트 되어서 동작하지 않았지만 예시 코드를 기반으로 수정해가면서 해보니까 동작되는 것을 확인했습니다.

이 글이 오늘도 삽을 들고 어디를 파야하나 고민되는 분들에게 도움이 되었으면 합니다.

from. 파이썬 수다장이 날다의 아저씨

Comments

comments powered by Disqus