본문 바로가기

trouble-shooting

Firestore를 Python에서 사용할때 주의할점

Firestore세팅을 마치고 serviceAccountKey.json도 생성해서 로컬에 저장했다. 자 이제 잘 연결됐는지 확인해볼까?

import firebase_admin
from firebase_admin import credentials, firestore

# Firebase 프로젝트 초기화
cred = credentials.Certificate("./serviceAccountKey.json")
app = firebase_admin.initialize_app(cred)

print("Firebase App Name:", app.name)
print("Project ID:", app.project_id)

# Firestore 클라이언트 테스트
db = firestore.client()
print("Firestore Client Initialized")

coll = db.collection("{my_collection_id}")
print("Collection ID:", coll.id)

에러 하나 없이 콘솔에 잘 찍힌다. 그래서 난 잘 세팅된줄만 알았다. 이대로 아래줄에 데이터 삽입 메소드를 실행해봤다.

coll.add({ "name": "John", "age": 10 })

google.api_core.exceptions.NotFound: 404 The database {project_name} does not exist for project {project_name} Please visit https://console.cloud.google.com/datastore/setup?project={project_name} to add a Cloud Datastore or Cloud Firestore database.

 

데이터베이스를 찾을수 없다는 에러였다. 연결하는 부분에서 에러가 발생하지 않았길래 데이터 삽입에서 권한 문제가 발생한줄 알았다. 게다가 저 코드는 공식 가이드에서 제공해준 코드잖아! 코드에는 문제가 없을것이야..

그런데 문제는 사실 다른곳에 있었다. db = firestore.client() 코드는 database_id를 인수로 받는데, None일 경우 project_id로 값을 넣는것이었다. 그래서 아래와 같이 수정함으로써 에러를 해결할수 있었다.ㅠㅠ

db = firestore.client(database_id="{database_id}")