如何在Python中停止Firebase Database的listen()方法
Python中停止数据库listen()监听的正确方法
错误原因
你当前操作无效的核心问题是:每次调用db.reference('Users/Requests/user1').listen(listener)都会生成独立的新监听器实例:
- 第一次调用
listen生成的运行中监听器没有被保存引用,后续无法对其进行操作 - 第二次调用
listen是生成了第二个全新的监听器,此时调用close()也只是关闭了这个未实际投入运行的新实例,对已经在工作的第一个监听器完全没有影响
正确操作步骤
- 调用
listen方法时,将返回的监听器实例保存到变量中
# 存储监听器实例 listener_reg = db.reference('Users/Requests/user1').listen(listener)
- 需要停止监听时,直接调用该保存实例的
close()方法即可
# 停止正在运行的监听 listener_reg.close()
提示:如果你使用的是较早版本的firebase-admin库,调用
close()未生效时,可以额外调用listener_reg.unsubscribe()再执行关闭逻辑。
内容的提问来源于stack exchange,提问作者Lakshmi Vallabh
相关产品推荐
相关产品推荐

