如何解决Python Firebase监听器closeKivy
当Python Kivy应用程序运行时,Firabase侦听器也会打开,以便它更改应用程序中的实时值。侦听器工作正常,我在firebase db中的值更改了。
但是,当我关闭应用程序时,侦听器继续在后台运行,并且我的调试窗口没有关闭。
这是我的Firebase监听器:
def listener(event):
put = event.event_type
path = event.path
data = event.data
print(put)
print(path)
print(data)
#do something
listen_on = firebase_admin.db.reference('/my_firebase').listen(listener)
当我运行我的kivy应用程序时,我得到以下输出:
[INFO ] [Loader ] using a thread pool of 2 workers
INFO:kivy:[Loader ] using a thread pool of 2 workers
put
/
{'mydata1': 20,'mydata2': 27,'mydata3': 14,'mydata4': 15}
[INFO ] [Base ] Start application main loop
INFO:kivy:[Base ] Start application main loop
[INFO ] [WindowSDL ] exiting mainloop and closing.
INFO:kivy:[WindowSDL ] exiting mainloop and closing.
[INFO ] [Base ] Leaving application in progress...
INFO:kivy:[Base ] Leaving application in progress...
一切正常,应用程序和Firebase数据库中的数据值正在更改,
但是,当我关闭我的应用程序时,包含应用程序的窗口关闭,并且我在终端机上看到了这个
[INFO ] [Base ] Leaving application in progress...
INFO:kivy:[Base ] Leaving application in progress...
我的调试窗口还没有关闭
在关闭应用程序后,我应该看到这个
PS J:\Azure\my-code-kivy-firebase
只有在杀死终端之后,才会显示我的代码的路径
当我将其添加到代码中时
def listener(event):
put = event.event_type
path = event.path
data = event.data
print(put)
print(path)
print(data)
#do something
listen_on = firebase_admin.db.reference('/my_firebase').listen(listener)
listen_on.close()
我的侦听器停止运行,不再更改数据库中的值:(
我试图在应用程序的各个位置添加listen_on.close()
代码,但是以某种方式无法正常工作。
我尝试过:
try:
pass
except:
listen_on.close()
但它也不起作用。
有人可以帮助我,在我的代码中写上listen_on.close()
或其他解决方案的地方。非常感谢!继续编码!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。