Я запутался.
Описание проблемы:
Я хочу подключиться к базе данных Firebase Realtime, используя URL-адрес. Я создаю класс FirebaseConnection, в котором я определил несколько методов:
(1) get_all_data - чтобы получить данные из базы данных Firebase и сохранить UrlRequest в self.req
(2) success_confirm - вызывается при успешном вызове UrlRequest () и данные помещаются в self.all_data
(3) search_customer - it должен вызываться, когда я хочу проверить, зарегистрирован ли указанный c пользователь в БД, проверяющий список self.all_data
Я использую класс FirebaseConnection в main.py, когда я запускаю MyMainApp и метод on_start, но данные не помещаются в self.all_data.
main.py
from firebase_api import FirebaseConnection
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager
from kivy.lang import Builder
class WindowManager(ScreenManager):
pass
kv = Builder.load_file("windowmanager.kv")
data_from_firebase = []
class MyMainApp(App):
def build(self):
return kv
def on_start(self):
# Check connection with Firebase DB
self.firebase_conn = FirebaseConnection('your-url-to-firebase-db')
self.firebase_conn.get_all_data()
if __name__ == "__main__":
MyMainApp().run()
firebase_api.py
from kivy.network.urlrequest import UrlRequest
class FirebaseConnection:
def __init__(self, url):
self.url = url
self.req = None
self.all_data = []
def success_confirm(self, *args):
for i in self.req.result:
self.all_data.append(i)
print(self.all_data)
print('Success!')
def get_all_data(self):
# Check connection with Firebase DB
json_url = self.url+'.json'
self.req = UrlRequest(json_url, on_success=self.success_confirm)
print(self.req)
def search_customer(self, email_or_login):
print('Search Customer method...')
print(self.all_data)
Вопросы:
Кто-нибудь знает, как это изменить?