停止快照侦听器



>我有一个快照侦听器,我想在关闭ViewController时停止它,我知道我需要使用listener.remove()但我想在ViewWillDisappear()函数中调用它。

我想在我的ViewController中声明一个变量:

var listener = ListenerRegistration?.self

然后在侦听器函数类型中:

listener = openInstanceRef?.collection("MyDishes").addSnapshotListener( ... )

但是我收到此错误:

Cannot assign value of type 'ListenerRegistration?' to type 'ListenerRegistration?.Type'

如果我尝试删除 .self 并键入 ListenerRegistration?() 而是在侦听器的声明中收到此错误:

`Cannot invoke initializer for type 'ListenerRegistration?' with no arguments`

但是swift不会为我提供任何可以获取参数的初始化器

谢谢

Swift 中的语法是:

listener.remove()

请参阅有关删除侦听器的 Firestore 文档。

你可以像这样初始化

private var listener = ListenerRegistration!

如果它是可选的,只需删除括号

private var listener = ListenerRegistration? = nil

最新更新