<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
  <id>https://titanium-haiku-594.appspot.com/</id>
  <title>Blog - Posts in Firestore</title>
  <updated>2024-07-16T17:59:53.443775+00:00</updated>
  <link href="https://titanium-haiku-594.appspot.com/"/>
  <link href="https://titanium-haiku-594.appspot.com/blog/category/firestore/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.8">ABlog</generator>
  <entry>
    <id>https://titanium-haiku-594.appspot.com/blog/python-firestore-api-emulator-using/</id>
    <title>python firestore API에서 에뮬레이터 사용하기</title>
    <updated>2024-05-02T00:00:00+09:00</updated>
    <author>
      <name>search5</name>
    </author>
    <content type="html">&lt;section id="python-firestore-api"&gt;

&lt;p&gt;파이썬 프로그램을 개발하다보면 인터넷에 접속해있지 않은 상황에서 로컬 컴퓨터에 실행된 에뮬레이터나 개발 서버를 사용해야 할 때가 있습니다. 웹 서버 정도는 인터넷에 연결되어 있지 않아도 금방 띄울 수 있지만 Google Firestore 같은 것들은 에뮬레이터를 사용해야만 데이터에 접근할 수 있습니다.&lt;/p&gt;
&lt;p&gt;이 글에서는 firestore 에뮬레이터가 설치되어 있다고 가정합니다. 설치할 패키지는 다음과 같습니다.&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;google&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;firestore&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;아래 코드는 실제 구글 Firestore API를 사용해 프로그램에 접근했을 때 로컬 서버에 실행된 에뮬레이터에 접근하도록 만든 코드입니다.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;grpc&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;firestore&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;google.cloud.firestore_v1.services.firestore&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;firestore_client&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;google.cloud.firestore_v1.services.firestore.transports.grpc&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FirestoreGrpcTransport&lt;/span&gt;

&lt;span class="n"&gt;channel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;grpc&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insecure_channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;localhost:8080&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;transport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;FirestoreGrpcTransport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;firestore_db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;firestore&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;firestore_db&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_firestore_api_internal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;firestore_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FirestoreClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;transport&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;transport&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;에뮬레이터에 등록된 데이터만 추출해서 확인이 필요했는데 구글 클라우드 문서엔 관련 내용을 찾을 수 없어서 여기저기 뒤적거려보니 스택오버플로우에 4년전에 달린 글이 있어 그대로 적용해봤더니 API가 여러모로 업데이트 되어서 동작하지 않았지만 예시 코드를 기반으로 수정해가면서 해보니까 동작되는 것을 확인했습니다.&lt;/p&gt;
&lt;p&gt;이 글이 오늘도 삽을 들고 어디를 파야하나 고민되는 분들에게 도움이 되었으면 합니다.&lt;/p&gt;
&lt;p&gt;from. 파이썬 수다장이 날다의 아저씨&lt;/p&gt;
&lt;/section&gt;
</content>
    <link href="https://titanium-haiku-594.appspot.com/blog/python-firestore-api-emulator-using/"/>
    <summary>파이썬 프로그램을 개발하다보면 인터넷에 접속해있지 않은 상황에서 로컬 컴퓨터에 실행된 에뮬레이터나 개발 서버를 사용해야 할 때가 있습니다. 웹 서버 정도는 인터넷에 연결되어 있지 않아도 금방 띄울 수 있지만 Google Firestore 같은 것들은 에뮬레이터를 사용해야만 데이터에 접근할 수 있습니다.이 글에서는 firestore 에뮬레이터가 설치되어 있다고 가정합니다. 설치할 패키지는 다음과 같습니다.아래 코드는 실제 구글 Firestore API를 사용해 프로그램에 접근했을 때 로컬 서버에 실행된 에뮬레이터에 접근하도록 만든 코드입니다.</summary>
    <category term="emulator" label="emulator"/>
    <category term="firestore" label="firestore"/>
    <category term="python" label="python"/>
    <published>2024-05-02T00:00:00+09:00</published>
  </entry>
</feed>
