удаление одного словаря из базы данных реального времени Fire-base (python3) - PullRequest
0 голосов
/ 16 мая 2019

Данные в базе данных пожарной базы приведены ниже:

enter image description here

Я хочу взаимодействовать с одним словарем одновременно, например, удалитьэто из fire-base или обновите его.Для этого мне нужно отфильтровать базу данных с помощью нескольких фильтров, таких как home_team и away_team

edit

Мне удалось отфильтровать данные в конкретный словарь, который я хотел бы удалить.пс.добавьте правила в firebase следующим образом: добавьте правила в firebase

текущий код выглядит следующим образом:

import pyrebase

# firebase configuration
########################
config = {
    ...
}

firebase = pyrebase.initialize_app(config)
db = firebase.database()

games = db.child("basketball").order_by_key().order_by_child("home_team").equal_to("Singapore Slingers").get()
print(games.val())  # success 

# now to delete 
db.child("basketball").order_by_key().order_by_child("home_team").equal_to("Singapore Slingers").remove()  # this clears the entire database even though i have filtered to the database i would like to remove

Ожидаемый результат будетудалить игру, чьи home_team == 'Singapore Slingers' && away_team == 'CLS Knights Surabaya' из базы данных реального времени firebase

1 Ответ

0 голосов
/ 16 мая 2019

Ну,

сам нашел ответ,

Сначала я установил pyrebase4 pip install pyrebase4, узнайте больше об этом на pyrebase4 @ GitHub .

Далее я отредактировал правила @ Fire-base как:

{
"rules": {
    "basketball" : {
          ".indexOn": ["home_team", "away_team"]
        },
    ".read": true,
    ".write": true
  }
}

мой рабочий код выглядит так:

import pyrebase

# firebase configuration
########################

config = {
    ...
}

firebase = pyrebase.initialize_app(config)
db = firebase.database()

# game filter
games = db.child("basketball").order_by_child("home_team").equal_to("Singapore Slingers").order_by_child("away_team").equal_to("CLS Knights Surabaya").get().val()

# Gēmu o korosu
for game in games:
    db.child("basketball").child(game).remove()
# works like a charm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...