我试图在我的pyresbase上使用stream,但是对于检索到的数据,我唯一能做的就是在控制台上打印它们。我需要更新一个全局表或将这些数据传递给其他函数,但当我试图调用其他函数或实例化变量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)
下面你会看到它打印的内容:
^{pr2}$它似乎工作得很好,但我能用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_选项卡变成了空的。在
request_tab_type_stream - <class 'kivy.properties.ObservableList'>
request_tab_stream - []
我现在放弃了。真的需要帮助。在
当然你可以使用流处理程序处理任何事情。请记住,您将回调传递给
Pyrebase
,当它检测到注册路径上的更改时,Pyrebase
将触发它。在很抱歉,您的代码片段不清楚或不完整。在
尝试下面的例子,根据您的需要进行调整:
在这个例子中,
MyStuffTracker
有一个私有的_db
一个初始化的Firebase DB方法stream_handler
,它只存储新的数据,或者在数据内部发生一些嵌套的更改时再次拉取它,以及一个原始示例,说明如何在数据的第一个快照可用后启动和使用它(以避免在初始化之前访问它)在希望对你有用。在
相关问题 更多 >
编程相关推荐