파이썬에서 Firebase의 데이터를 가져오는 방법을 알아본다.
앞의 데이터 삽입부분에서의 pip install 과 Firebase key를 받아 온것으로 생각하고 진행하겠습니다.
2023.09.06 - [Dev/Web] - Firebase 파이썬으로 DB 데이터 삽입
코드
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import json
# Firebase 서비스 계정 키 파일 경로
cred = credentials.Certificate("firebase-adminsdk.json")
# Firebase 앱 초기화
firebase_admin.initialize_app(cred)
# # Firebase 앱 초기화 실시간버전
# firebase_admin.initialize_app(cred, {
# 'databaseURL': 'https://your-project-id.firebaseio.com'
# })
# Firestore 데이터베이스 클라이언트 가져오기
db = firestore.client()
## Firebase 데이터베이스 참조 가져오기 실시간 데이터베이스, firestore
## 데이터베이스
# ref = db.reference('/users')
## 데이터 읽기
# data = ref.get()
# print(data)
## test collection 전부 가져오기
ref = db.collection("test")
docs = ref.stream()
## testdocument 선택 및 가져오기
## ref_docu = ref.document("test_docu")
## doc = ref_docu.get()
## 출력하기
# for doc in docs:
# print(f"{doc.id} => {doc.to_dict()}")
# Firestore 문서 데이터를 리스트로 변환
doc_list = [doc.to_dict() for doc in docs]
print(doc_list)
# JSON 문자열로 변환
json_data = json.dumps(doc_list)
# print(json_data)
## make json
with open('get_data.json', 'w') as f:
f.write(json_data)
- Certificate("path/to/serviceAccountKey.json")
경로설정은 앞의 게시물인 삽입때와 방법이같다. (key경로) - 'databaseURL': 'https://your-project-id.firebaseio.com'
your-project-id 에는 자신의 appID를 적어주면 된다.(firestore에서는 사용하지 않는듯하다)
ex) 주소창 hk-netflix
- .stream()
모든 test 컬렉션의 데이터 반환할때 쓰임 - .get()
문서 데이터 받아오기 - .where("capital", "==", True)
문서 검색 - 그 후 get_data.json 으로 json 파일을 만들어 준다.
Firebase의 데이터베이스는 크게 두가지로 나눌수가 있습니다.
그것에 따라 db.reference 경로가 달라집니다.
실시간 데이터베이스의 경우 경로는 /로 시작하며, 특정 노드까지 이어지는 경로를 따라갈 수 있습니다.
예1 ) /users 경로는 "users"라는 톱 레벨 노드를 나타낸다. Firestore의 경우 경로는 컬렉션과 문서를 나타내며, 구분자로 /를 사용합니다.
예2) /users/{user-id}/orders/{order-id} 경로는 "users" 컬렉션 안의 특정 "user-id" 문서의 "orders" 서브컬렉션 안의 특정 "order-id" 문서를 나타냅니다.
'Dev > Web' 카테고리의 다른 글
Firebase 파이썬으로 DB 데이터 삽입 (0) | 2023.09.06 |
---|---|
Django db 연결 (0) | 2023.04.18 |
Django DRF dj_rest_auth JWT 오류 (0) | 2023.04.18 |