컴퓨터공학/기타 프로그래밍

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

TaeGyeong Lee 2024. 1. 2. 04:02

개요

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