我正在尝试在我的 pyrebase 上使用流,但似乎我对检索到的数据唯一能做的就是在控制台上打印它们。我需要更新全局表或将这些数据传递给其他函数,但是当我尝试调用其他函数或实例化变量 pycharm 时说“未解决的引用”。有没有办法使用流来更新变量、表等?您将在下面找到我使用的功能:
def requestHandler(message):
print("message type", type(message))
print("message", message)
print("event",message["event"]) # put
print("path", message["path"]) # /-K7yGTTEp7O549EzTYtI
print("data", message["data"]) # {'title': 'Pyrebase', "body": "etc..."}
requests_tab = db.child("Data")).stream(requestHandler)
在下面你会发现它打印的内容:
message type <class 'dict'>
message {'path': '/', 'data': {'start': '', 'site': '', 'end': '', 'km': '', 'task': '', 'action': '', 'date': '23.02.2019'}, 'event': 'put'}
event put
path /
data {'start': '', 'site': '', 'end': '', 'km': '', 'task': '', 'action': '', 'date': '23.02.2019'}
它似乎工作正常,但我可以将使用 strem 用于打印以外的其他东西吗?
我已经在流之前和之后以及在流发生任何更改之前打印了变量类型。
def printRequestTab(self):
print("request_tab_type_stream - ", type(self.requests_tab))
print("request_tab_stream - ", self.requests_tab)
def requestHandler(message):
pass
requests_tab = db.child("Branch")).stream(requestHandler)
print("request_tab_type - ", type(requests_tab))
print("request_tab - ",requests_tab)
print('printRequestTab', printRequestTab)
这就是更改前的结果:
request_tab_type - <class 'pyrebase.pyrebase.Stream'>
request_tab - <pyrebase.pyrebase.Stream object at 0x02654F90>
printRequestTab <function RequestScreen.printRequestTab at 0x04B3E7C8>
在我调用 printRequestTab 之后,requests_tab 变空了。
request_tab_type_stream - <class 'kivy.properties.ObservableList'>
request_tab_stream - []
我现在放弃了。真的需要一些帮助。