본문 바로가기
프로그래밍/기타 프로그래밍

[python] Firebase Admin SDK child path 활용 데이터 읽기

by TaeGyeong Lee 2024. 1. 2.

개요

python firebase admin sdk를 활용하여 실시간데이터베이스에서 데이터를 읽는 방법과 path를 작성하는 방법입니다.

 

가정

다음과 같이 데이터가 저장되어 있다고 가정합니다.

- fruit :
    - apple :
    	- price : "100"
        - size : "3"
    - banana : 
    	- price : "200"
        - size : "92"
    - orange : 
    	- price : "600"
- people : 
	- amy
    - james

 

기본 설정

python 스크립트에서 아래와 같이 작성합니다.

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

cred = credentials.Certificate(파이어베이스 콘솔에서 받은 인증 파일.json)
firebase = firebase_admin.initialize_app(cred, {
    'databaseURL' : 파이어베이스 데이터베이스 주소
})

 

데이터 읽기 

fruit 내 모든 데이터를 읽어 가져옵니다.

fruit_ref = db.reference('fruit')
fruits = fruit_ref.get()

 

banana의 가격만을 읽어 가져옵니다.

apple_price_ref = db.reference('fruit').child(f'{apple}/{price}')
apple_price = apple_price_ref.get()

 

path

앞선 코드에서 child 파라미터에 path 를 넣어 희망하는 데이터만 쏙 읽을 수 있습니다. 

▶ child 함수 정의 소스코드

...
	if not path or not isinstance(path, str):
            raise ValueError(
                'Invalid path argument: "{0}". Path must be a non-empty string.'.format(path))
        if path.startswith('/'):
            raise ValueError(
                'Invalid path argument: "{0}". Child path must not start with "/"'.format(path))
        full_path = self._pathurl + '/' + path
        return Reference(client=self._client, path=full_path)
 ...

 

위 로직을 통해 path는 다음과 같은 조건을 만족해야 함을 알 수 있습니다.

  • 전달받은 인자가 '값'을 가져야 하며, 문자열이어야 합니다.
  • '/' 으로 시작하면 안됩니다.

 

참고 자료

 

firebase_admin.db module  |  Firebase

 

firebase.google.com

 

인터페이스: 경로  |  Firebase

 

firebase.google.com