簡體   English   中英

使用 Python 檢查 FireBase 數據庫中是否存在特定值

[英]Check If a Particular Value Exists in the FireBase Database Using Python

我創建了一個實時數據庫,然后開始推送一些數據,例如用戶名、ID 和日期分機。

但是我需要檢查我的數據庫中是否存在此 ID 我該怎么做。

這是我的代碼:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db


cred_obj = firebase_admin.credentials.Certificate('firebase_credentials.json')


default_app = firebase_admin.initialize_app(cred_obj, {
    'databaseURL': 'My DataBase URL'})
ref = db.reference("/Logs")
ref.child(user.name).set({
            'Name' : user.full_name,
            'ID' : str(user.id),
            'Date' : str(update.message.date.astimezone(pytz.timezone('Asia/Damascus')).strftime("%d-%b-%Y")),
            'Time' : str(update.message.date.astimezone(pytz.timezone('Asia/Damascus')).strftime("%H:%M:%S"))
            })

這是我的實時數據庫

我需要檢查這個名字或這個 ID 是否存在我不會更新數據庫..

要有條件地將值寫入數據庫中的路徑,您可以使用事務

在您的情況下,它看起來像:

def set_initial_value(current_value):
    return current_value if current_value else {
        'Name' : user.full_name,
        'ID' : str(user.id),
        'Date' : str(update.message.date.astimezone(pytz.timezone('Asia/Damascus')).strftime("%d-%b-%Y")),
        'Time' : str(update.message.date.astimezone(pytz.timezone('Asia/Damascus')).strftime("%H:%M:%S"))
    }

ref = db.reference("/Logs")
try:
    ref.child(user.name).transaction(set_initial_value);
    print('Transaction completed')
except db.TransactionAbortedError:
    print('Transaction failed to commit')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM